- ベストアンサー
WebでExcelを生成し、ダウンロードする方法
- VWD ASP.NET(VB)を使用して、Webサーバー側に雛形Excelを配置し、ユーザーの指定によりDB情報をExcelに付加してダウンロードする方法を探しています。
- 他の方が同じ考え方でExcelを生成してダウンロードする方法を紹介しているサイトがありましたが、私はVBしかわかりません。
- 複数のユーザーが同時に利用することを考慮して、安全性やプログラムの内容について不安があります。VBのソースコードを教えていただけると助かります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
No.1氏の回答では、雛形Excelは考慮できていません。 それよりも、そもそもサーバサイドで Excel を操作する事は推奨されていないので、方式を改めることを検討するのが無難です。詳細は下記(技術的にだけでなくライセンス的にも)。 http://support.microsoft.com/kb/257757/ja やるなら OLEDB プロバイダで Excel をデータベースと見立てて更新することです。 http://www.cocoaliz.com/asp.net/index/41/ 複数利用については、雛形ファイルをコピーする際にファイル名にセッションIDなどを付与してユニークなワークファイルを作って操作する必要があるでしょう。
その他の回答 (2)
No.2 です。こういうとき普通は 3rd Party 製品を利用します。 有名なのは Excel Creator です。 http://www.adv.co.jp/product/product_excelcreator2012.htm Excel 雛形を元にファイル作成できます。
お礼
お礼をするのが大変遅くなりまして申し訳ありません。 製品を利用するのは予算がないので断念です。 先に回答いただいた内容で、あと少しのところまで辿り着きました。 >複数利用については、雛形ファイルをコピーする際にファイル名にセッションIDな>どを付与してユニークなワークファイルを作って操作する必要があるでしょう。 しかし、Excelのセル単位の更新ができないので 別でもう一度質問をさせていただきます。 ありがとうございました。
- singlecat
- ベストアンサー率33% (139/418)
簡単ですよ。 エクセルはHTMLパーサを持っているので、 HTMLのテーブル形式で表を作成してレスポンスに書き出せばOKですよ。 残念ながらASP.NETは知らないので、昔のレガシーASPのソースを! Response.ContentType = "application/vnd.ms-excel" Response.AddHeader "Content-Disposition","Content-Disposition: inline; filename=SAMPLE.xls" Response.Write("<html xmlns:x='urn:schemas-microsoft-com:office:excel'> ") Response.Write("<html>") Response.Write("<body>") Response.Write("<table border='1' cellspacing='1' cellpadding='2'>") Response.Write("<tr bgcolor='#0066FF'>") Response.Write("<td align='center' nowrap><font color='#FFFFFF'>SEQ</font></td>") Response.Write("<td align='center' nowrap><font color='#FFFFFF'>ITEM</font></td>") Response.Write("</tr>") linecount = 0 Do While Not RS_TABLE.EOF '// RS_TABLEは事前にOPEN linecount = linecount + 1 Response.Write("<tr bgcolor='#FFFFFF'>") Response.Write("<td align='center' nowrap rowspan >" & linecount & "</td>") Response.Write("<td align='center' nowrap rowspan x:str>" & RS_TABLE("ItemCd") & "</td>") Response.Write("</tr>") RS_TABLE.MoveNext Loop Response.Write("</body>") Response.Write("</table>") Response.Write("</html>")
補足
早速、ありがとうございます。 私には少し難しいので教えてください。 雛形のExcelの読込は何処で行っているのでしょうか? 雛形Excelの保存先を記述するばしょがわかりません。 申し訳ありませんがよろしくお願い致します。
補足
早速、ご丁寧にありがとうございます。 ご相談ですが、以下のようなASP.Net(VB)でシステム構築 現在の申し込み書類(Excel)をWeb+DB対応。 ・申し込み書をDBと連動してWebで自動作成し 印刷プレビュー(Web印刷のようにヘッダーフッターのない形式) させたかったです。PDF自動生成でもよいのですが雛形を作成 するのが大変でして、Excelを利用してできないものか。 現在使用している雛形Excelには承認印枠など多くの罫線枠があり ASP.Netで作成するのには大変な作業で完成に至っていません。 何かよい方法はないでしょうか? よろしくお願い致します。