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

ASP.NETでWebフォーム上にあるデータをExcelに出力する方法

1
投稿者投稿内容
ttcoupe
大ベテラン
会議室デビュー日: 2003/01/17
投稿数: 116
お住まい・勤務地: 大阪市
投稿日時: 2003-01-17 22:07
初めて書かせてもらいます。

ASP.NETでWebフォーム上にあるデータをExcelに出力する方法
なんですけど、皆さんが普段されてる方法などがありましたら
教えて欲しいです。
出来れば罫線なども引きたいです。
あと、ASP.NETからファイルの出力(作成)なども出来るので
しょうか?あわせて教授して欲しいです。よろしくです。

開発環境
Win2000 + ASP.NET(VB.NET) + Office2000です。
rvmx
大ベテラン
会議室デビュー日: 2002/09/26
投稿数: 184
お住まい・勤務地: 愛媛県
投稿日時: 2003-01-18 07:54
今日は

方法は色々有ると思いますが、私が昔から(ASP)使っている方法は
サーバーサイドでレスポンスを返す時に、必要そうなデータファイルを同時に作成します。
Excelであれば、CSVにしていました。しかし罫線が必要ならばExcelを使ったほうが
良いかと思います。
後は、レスポンの中にそのファイルへリンクする項目を作っておけば、クライアントは
必要な人が、それをクリックし取得出来ます。
只この方法は、複数の同時アクセスを想定した対策が必要です。
具体的には、最大同時アクセス数を想定し、ファイル名を順繰りに変えて行って居ました。
又、CSVでは問題ないですが、Excelを使った時はバージョン等の問題も考慮する必要が有ります。
sumida
会議室デビュー日: 2003/01/20
投稿数: 9
投稿日時: 2003-01-20 16:50
私が使っている方法は、ページロード時に以下のように記述しておき、
これからブラウザに渡されるデータがExcelのデータであると思わせる方法です。

Sub Page_Load(Sender As Object, e As EventArgs)

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

実際には、表示部分は以下のようにデータグリッドで定義しておけば、
そのとおりの表が表示されますので、後は各ブラウザ上で内容を保存
してもらうようにしています。

<html>
<head>
</head>
<body>
<div class="Head">テスト用の表</div>
<asp:datagrid id="myDataGrid"
BorderColor="black"
BorderWidth="1"
GridLines="Both"
CellPadding="3"
CellSpacing="0"
HeaderStyle-BackColor="#aaaadd"
AlternatingItemStyle-BackColor="#eeeeee"
Width="100%"
AutoGenerateColumns="false"
EnableViewState="false"
runat="server">

この方法だと同じデータの同時アクセスに関する留意も不要ですし楽チンです(笑)
pukupuku
会議室デビュー日: 2003/01/24
投稿数: 4
投稿日時: 2003-02-27 11:49
こんにちは!
私もフォーム上のデータをExcelに出したいです。
sumidaさんの方法が簡単かなと思いやってみました。
Page_Load時に(C#になってます)
Response.Buffer = true;
Response.ContentType = "application/vnd.ms-excel" ;
を設定して試してみました。
一瞬、うまくいった!と思ったのですが、うまく行かないパソコンも出てきました。

そのパソコンでは、
Response.Buffer = true;
Response.ContentType = "application/vnd.ms-excel"
この2行を書くとaspxファイルを保存する画面が表示されてしまうのです。

うまくいくパソコンとうまくいかないパソコンを比較してみると、
.netがインストールされているパソコンはうまく動く。
エクスプローラのフォルダオプションのフィルタイプにaspxが入っていると動かない。
という感じです。
なにか設定が足りないのでしょうか?
ユーザーさんにフィルタイプのaspxを削除してくださいとお願いするのはちょっと不可能なので、サーバ側で何か対策できないかと調査しています。
ご存知の方がいましたら教えてください。
根本的に間違っている場合にもアドバイスお願いします。
ttcoupe
大ベテラン
会議室デビュー日: 2003/01/17
投稿数: 116
お住まい・勤務地: 大阪市
投稿日時: 2004-01-13 13:10
みなさん色々とありがとうです。レスが遅れてしまいました(^o^;

最終的にあまりよくはないのですが、Excelのテンプレートを作成し、
取り込んだデータをサーバで作成(オートメーション)で解決しました。
かなりの多重処理も裁いているのでこのままでいいのかなと思っています。
1

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