- PR -

データグリッドからエクセル出力する方法

1
投稿者投稿内容
やまぐち
会議室デビュー日: 2004/08/27
投稿数: 3
投稿日時: 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()

todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2004-08-27 19:40
Response.ContentTypeを外すとどうなりますか?

DataGridだけのページにDataBindするという方法もあります。

コード:

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>

<html>
<head>
<script runat="server">
void BindMyGrid() {
DataSet ds = new DataSet();
ds.ReadXml("http://www.atmarkit.co.jp/rss/fdotnet/rss2dc.xml");

MyGrid.DataSource = ds.Tables["item"];
MyGrid.DataBind();
}

void Page_Load(Object s, EventArgs e) {
Response.ContentType = "application/vnd.ms-excel";
BindMyGrid();
}

</script>
</head>

<body>
<form runat="server">
<asp:DataGrid id="MyGrid" runat="server" EnableViewState = " False" />
</form>
</body>
</html>






[ メッセージ編集済み 編集者: todo 編集日時 2004-08-27 19:43 ]
やまぐち
会議室デビュー日: 2004/08/27
投稿数: 3
投稿日時: 2004-08-27 19:56
Response.ContentTypeをはずしたら、データグリッドだけの表示になりました。
しかもヘッダの部分が文字化けしてしまいました。

印刷などだけをするならこの方法でもいけるかもしれませんが、なるべくエクセルで出力したいと思っています。

自分の力ではどうしようもありません・・・
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-08-28 06:33
引用:

やまぐちさんの書き込み (2004-08-27 19:15) より:

過去のログで調べたところ、以下のような方法でできることがわかったので実行したところ、エクセルの画面はブラウザ上に表示されるのですが、内容が真っ白で何も表示されずにどうしたらいいかわかりません。


 おしえてねっとに同じような質問がありましたが、同じ人かな?同じなら、どちらかで得た回答は、他方にもフィードバックしてくださいね。

 どっとねっとふぁんというサイトの、このページに、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/27
投稿数: 3
投稿日時: 2004-08-30 11:36
こんにちわ。
Jittaさんの方法でできました。
ありがとうございました!
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-08-30 12:20
引用:

やまぐちさんの書き込み (2004-08-30 11:36) より:

Jittaさんの方法でできました。
ありがとうございました!


 お礼は小野@どっとねっとふぁんさんへ。

 あと、なぜできなくて、この方法ならなぜできたのか、というところを理解してください。

 元の方法では、HTMLではないものを吐き出しています。ContentTypeの行をコメントアウトしてIEに出し、IEで「ソースの表示」をするとわかると思います。
1

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