- - PR -
Jakarta POI でwriteしたExcelファイルが開けません
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-04-03 15:30
インギさん
何度もレスポンスをありがとうございます。
ソースとしては下のとおりで public void outputExcel( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // Excelテンプレートファイル名(フルパス)の取得 String templateFile = this.getServlet().getServletContext().getRealPath("/WEB-INF/lib/TEST_format.xls"); // Excel出力処理 ※ここでビジネスロジックを実行し、テンプレート(xls)に値を格納しています。 // ダウンロード String fileName = "TEST_" + new SimpleDateFormat("yyyyMMdd").format(new Date()) + "_" + new SimpleDateFormat("HHmmss").format(new Date()) + ".xls"; response.setHeader("Content-Disposition", "attachment;filename=" + fileName); response.setContentType("application/vnd.ms-excel"); workbook.write(response.getOutputStream()); response.getOutputStream().close(); } となっていますが、ここでresponse.setContentType()はレスポンスをコミットする、という ことになっているのでしょうか? 初歩的な質問で申し訳ありません。 [ メッセージ編集済み 編集者: hiro 編集日時 2007-04-03 15:35 ] | ||||
|
投稿日時: 2007-04-03 16:06
会議室を検索するといくつかひっかかりますが、レスポンスがコミットさ
れるのは flush を呼び出した場合やバッファが溢れた場合などです。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=20765&forum=12 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25814&forum=12 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=35808&forum=12 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=37076&forum=12 outputExcel を呼び出す前、forward する前です。 ちなみにこの現象は POI とも関係がなく、outputExcel 内でテキストを書き出しても同じ現象が発生すると思います。 | ||||
|
投稿日時: 2007-04-09 11:28
Excelファイルを一時的にサーバー上に作成し、それを
ダウンロードすることで回避しました。 (サーバー(SunOS)→ローカル(Win)のwriteがダメな原因が 解決しなかったのですが…) インギ様、何度もアドバイスいただきありがとうございます。 |