- - PR -
データグリッドからエクセル出力する方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-08-27 19:15
.net初心者です。
今、データグリッドからエクセル出力しようとしているのですが、 うまくいきません。 過去のログで調べたところ、以下のような方法でできることがわかったので実行したところ、エクセルの画面はブラウザ上に表示されるのですが、内容が真っ白で何も表示されずにどうしたらいいかわかりません。 この解決方法をご存知の方はぜひ教えてください。よろしくお願いします。 Response.ContentType = "application/vnd.ms-excel" Response.Charset = "" Me.EnableViewState = False Dim tw As New System.IO.StringWriter Dim hw As New System.Web.UI.HtmlTextWriter(tw) DataGrid1.RenderControl(hw) Response.Write(tw.ToString()) Response.End() | ||||
|
投稿日時: 2004-08-27 19:40
Response.ContentTypeを外すとどうなりますか?
DataGridだけのページにDataBindするという方法もあります。
[ メッセージ編集済み 編集者: todo 編集日時 2004-08-27 19:43 ] | ||||
|
投稿日時: 2004-08-27 19:56
Response.ContentTypeをはずしたら、データグリッドだけの表示になりました。
しかもヘッダの部分が文字化けしてしまいました。 印刷などだけをするならこの方法でもいけるかもしれませんが、なるべくエクセルで出力したいと思っています。 自分の力ではどうしようもありません・・・ | ||||
|
投稿日時: 2004-08-28 06:33
おしえてねっとに同じような質問がありましたが、同じ人かな?同じなら、どちらかで得た回答は、他方にもフィードバックしてくださいね。 どっとねっとふぁんというサイトの、このページに、Response.Writeを用いてエクセルに出力する例があります。この中で、テーブル要素を書き出している部分丸ごとを削除し、 Dim tw As New System.IO.StringWriter Dim hw As New System.Web.UI.HtmlTextWriter(tw) DataGrid1.RenderControl(hw) Response.Write(tw.ToString()) と置き換えてみたら、どうなりますか? | ||||
|
投稿日時: 2004-08-30 11:36
こんにちわ。
Jittaさんの方法でできました。 ありがとうございました! | ||||
|
投稿日時: 2004-08-30 12:20
お礼は小野@どっとねっとふぁんさんへ。 あと、なぜできなくて、この方法ならなぜできたのか、というところを理解してください。 元の方法では、HTMLではないものを吐き出しています。ContentTypeの行をコメントアウトしてIEに出し、IEで「ソースの表示」をするとわかると思います。 |
1