@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

WEB画面に表示したEXCELシート名を変更したい

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

DataGridに表示したデータを下記のようにしてEXCELのシートとしてWEB画面に
表示したのですが、デフォルトではWEBフォーム名称(Form.aspx)がシート名に
なってしまいます。

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

試しに下記のようにやってみたのですが、何らお変りありませんでした。^^;

Response.AppendHeader("総括表", "総括表.xls")

どのようにすればコード内で任意のシート名をつけられるのでしょうか?
ご教示頂ければ幸いです。m(_)m
Qoo
大ベテラン
会議室デビュー日: 2003/04/08
投稿数: 121
投稿日時: 2003-05-07 17:52
こんにちは。

こことかが参考になるのでは?
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2003-05-08 10:35
===>Qoo様

おはようございます。
度々お世話になりますです。^^;

ご紹介頂いたサイトを参考にトライしてみたのですが、ダメでした。
今回新たに気づいたことがありますので、詳細についてレポート致します。

先ず、Table.aspxフォーム上のDataGridにデータをチェックボックス付きで表示し、
選択された行のレコードをRep1.aspxフォームのDatagridに表示させているのですが、
Rep1.aspxフォーム上のExcelのシート名はRep1.aspxではなく、Table.aspxとなっています。
(アドレスにも…/Table.aspxと表示されている!)

ちなみにTable.aspx.vbでは下記のような記述でRep1.aspxに画面遷移させています。

Server.Transfer("Rep1.aspx")

で、Rep1.aspx.vbのPage_Loadプロシジャの記述は下記の通りです。

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Response.Buffer = True
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("Content-disposition", "inline; filename=hyou.xls")

SqlDataAdapter1.Fill(Rep1DataSet1)
dgdRep1.DataBind()
End Sub

画面遷移の仕組み自体のみこめてないようなヤな予感がビンビンしてきました…^^;
Qoo
大ベテラン
会議室デビュー日: 2003/04/08
投稿数: 121
投稿日時: 2003-05-08 11:14
こんにちは。

"Content-disposition" => "content-disposition" のようですね。(^^
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2003-05-08 11:23
こんにちは!

小文字に変えて実行してみましたが、やはり結果は同じでした。T_T
Qoo
大ベテラン
会議室デビュー日: 2003/04/08
投稿数: 121
投稿日時: 2003-05-08 12:37
こんにちは。

大文字小文字は関係なかったみたいですね。(^^;;
画面遷移でひっかかるのかと思い、試してみたのですが、きちんと変更されました。
原因は別のところのようですね。

テスト的なプロジェクトを作って、Page_Loadプロシージャに
Response.Buffer = True
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("Content-disposition", "inline; filename=hyou.xls")
だけを書いて実行した場合には、どうなるのでしょう?
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2003-05-08 13:54
どーもです。

先頭フォーム(Title.aspx)のPage_Loadプロシージャにこの3行だけコピペして
実行してみましたところ、Excelのシート名はTitle.aspxとなりました。

うーん、何でコントロールできないんだろ?
Qoo
大ベテラン
会議室デビュー日: 2003/04/08
投稿数: 121
投稿日時: 2003-05-09 15:25
こんにちは。

うーん、何なんでしょうねぇ?
Googleで調べたら、同様の現象ぽいのはあるけども、これといった解決策が
見当たりませんでした。

ブラウザやExcelの設定などが絡んでるのかなぁ...

ところで、filename=hyou.txt としてみたらどうなるでしょう?

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