HTTPレスポンスのヘッダーをMS-Excelに設定する


setContentType()メソッドで、コンテンツタイプ(MIMEタイプ)に"application/vnd.ms-excel"を設定すると、
MicroSoft社のExcelシートを生成することが出来ます。
ExcelはHTMLのテーブルをExcelデータとして取り扱います。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class ExamContentTypeExcel  extends HttpServlet {

    public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
        throws IOException, ServletException
    {
        response.setContentType("application/vnd.ms-excel");
        PrintWriter out = response.getWriter();

        out.println("<html>");
        out.println("<body>");
        out.println("<table>");
        out.println("<tr><td>" + "Hello" + "</td>" + "<td>" + "Servlet" + "</td></tr");
        out.println("<tr><td>" + "1" + "</td>" + "<td>" + "2" + "</td></tr");
        out.println("</table>");
        out.println("</body>");
        out.println("</html>");
    }
}    

<実行結果>
ブラウザから、http://localhost:8080/bigcare2/servlet/ExamContentTypeExcel
と入力すると、以下の応答画面が表示されます。



もちろんブラウザがMIMEタイプでMS−Excelに対応していなければ、いけません。
IEはデフォルトで対応していますが、その他のブラウザはMIMEタイプの設定が必要と思われます。