- PR -

Datagridの内容をExcel表示で「ファイルを読み込めません」

1
投稿者投稿内容
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2003-04-23 17:41
お世話さまです。

今回はDatagridに表示した内容をそのままExcel出力するという処理を
(こちらにあった過去ログを参照して)Datagridを貼りつけたWEBフォームの
Page_Loadプロシジャ内に下記のコードを書いてWEBに表示させてユーザにExcel形式で
保存させるというところまではできました。

Response.Buffer = True
Response.ContentType = "application/vnd.ms-excel"

しかし、(恐らくデータ量の問題で)グリッドに表示する行が12行
を越えると「ファイルを読み込めません」というExcelのメッセージボックス
が表示されてしまいます。

11行までは問題なく表示でき、また、異なるデータでテストしても
やはり12行を越えると先のエラーメッセージが出ますので、
データに依存しているのではなく、データ量に依存したエラーと見てます。

また、先のコードをコメントアウトして単にグリッドに表示した場合は
(40行ぐらいのデータ量でも)問題なく表示されます。

この程度のデータ容量でパンクするのであれば別の方法も
考えないといけないかな?と思っております。

IEかExcelの設定で回避できるのでしょうか?
ご教示頂ければ幸いです。m()m

ちなみに環境は下記の通りです。

言語:ASP.NET(VB)
サーバ:Win2000,Excel97(SR-2)
クライアント:Win-XP,Excel2002(SP-2),IE6.0(SP1)
Qoo
大ベテラン
会議室デビュー日: 2003/04/08
投稿数: 121
投稿日時: 2003-04-24 12:00
こんにちは。

11行の場合に作成されるExcel形式のファイルのサイズと12行の場合に作成される
Excel形式のファイルのサイズは、それぞれどのくらいでしょうか?

また、Response.Write の部分はどのように記述されてますか?
(差し支えなければですけど...)
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2003-04-24 18:45
こんにちは!^^

またまたお世話になります。

本日はお休みを頂いておりますので、明日
ファイルサイズをUP致します。

ちなみにResponse.Writeは一切使っておりません。

DataGridに表示させているだけです。
Qoo
大ベテラン
会議室デビュー日: 2003/04/08
投稿数: 121
投稿日時: 2003-04-25 10:09
こんにちは。

なるほど、ちょっと勘違いしてました。(^^;
ひょっとすると ViewState が引っかかってるのかもしれませんね。
出来上がった Excelファイルをテキストエディタで開くと、中身はHTMLファイルだと
思います。その中に、__VIEWSTATEというhiddenの項目があってvalueがバイナリの
ような文字列になっていると思います。

DataGrid のプロパティで EnableViewState というのがあってデフォルトでは true
になってるかと思います。これを false にしてみてはどうでしょう?
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2003-04-25 10:27
===>Qoo様

おはようござい&お世話様でございます。

アドバイス頂いた通りにEnableViewStateの初期値をFalse
に変更して実行してみたところ、解決致しました!

おかげでこの方法で突き進むことができそうです。
本当に助かり&ありがとうございました。

私もいつかそちら(助言を贈る事が出来る)側の人間
に(なれるものなら)なってみたいものです。^^;
1

スキルアップ/キャリアアップ(JOB@IT)