- - PR -
Excelダウンロードでグラフ・罫線が表示されない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-08-26 11:16
以下のコードにてExcelファイルをダウンロードする処理を行ってます。
ところがダウンロードはできるのですが、ファイルを開こうとすると エラーメッセージが表示されます。 エラーを無視してファイルを開くこともできますが、 そうすると罫線やグラフのデータが表示されません。 どうか助けてください。
【Excelファイルを開こうとしたときのエラーメッセージ】 'graph.xls' にアクセスできません。ファイルは読み取り専用であるか、または読み取り専用の場所にアクセスしようとしています。または、サーバー上に保存されているドキュメントから応答がありません。 【キャンセルボタンを押下してファイルを開いたときのメッセージ】 'graph.xls'にエラーが検出されましたがMicrosoft Excelは次の修復を行うことによってファイルを開くことができました。修復を保持するにはこのファイルを保存してください。 修復の一覧: ファイルへのダメージが深刻であり修復は不可能です。Microsoft Excel は数式と値の回復を試みましたが、消失または破損したデータが含まれる可能性があります。 【環境】 Tomcat 4.1 JDK 1.4 IE 6.0 Excel 2002 [ メッセージ編集済み 編集者: 未記入 編集日時 2005-08-26 11:18 ] | ||||
|
投稿日時: 2005-08-26 11:35
BufferedOutputStream を閉じる前にサーブレットのOutputStream をクローズしているためにバッファされてる最後の部分が送信されていないのではないでしょうか。
| ||||
|
投稿日時: 2005-08-26 12:47
そもそもレスポンスの出力ストリームはサーブレット内でクローズするものではありませんよ。
| ||||
|
投稿日時: 2005-08-26 12:54
こんにちは。
少し気になったのですが、
ここでクローズするべきは, 一番外側でラップしてるクラス(ここではbinとbout)ではなかったでしょうか? 間違ってたらごめんなさい。 | ||||
|
投稿日時: 2005-08-26 13:18
直りました。
ご指摘のとおりoutをclose()していたのが悪かったようです。 そもそもout.flush()はbout.flush()じゃないといけませんよね。 以上を直してうまく動きました。 どうもありがとうございました。 |
1