餃子を食べるとき、何をつけますか?

VWD ASP.NET(VB) Excel2003

Webサーバー側に雛形Excelを配置し、ユーザーの指定により
DB情報をExcelに付加してダウンロードする方法を探しています。
以下のサイトに同じ発想の方がいましたが私はVBしかわかりません。
ユーザの利用は複数が同時に使用することも想定に考えると
以下のプログラムは安全なのかわかりません。
また、リンクが切れていて内容も理解できません。
何方かVBソースコードにて教えてください。
よろしくお願いいたします。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …

A 回答 (3件)

No.1氏の回答では、雛形Excelは考慮できていません。



それよりも、そもそもサーバサイドで Excel を操作する事は推奨されていないので、方式を改めることを検討するのが無難です。詳細は下記(技術的にだけでなくライセンス的にも)。
http://support.microsoft.com/kb/257757/ja

やるなら OLEDB プロバイダで Excel をデータベースと見立てて更新することです。
http://www.cocoaliz.com/asp.net/index/41/

複数利用については、雛形ファイルをコピーする際にファイル名にセッションIDなどを付与してユニークなワークファイルを作って操作する必要があるでしょう。

この回答への補足

早速、ご丁寧にありがとうございます。
ご相談ですが、以下のようなASP.Net(VB)でシステム構築
現在の申し込み書類(Excel)をWeb+DB対応。
・申し込み書をDBと連動してWebで自動作成し
 印刷プレビュー(Web印刷のようにヘッダーフッターのない形式)
 させたかったです。PDF自動生成でもよいのですが雛形を作成
 するのが大変でして、Excelを利用してできないものか。

現在使用している雛形Excelには承認印枠など多くの罫線枠があり
ASP.Netで作成するのには大変な作業で完成に至っていません。
何かよい方法はないでしょうか?
よろしくお願い致します。

補足日時:2012/06/05 14:46
    • good
    • 0

No.2 です。

こういうとき普通は 3rd Party 製品を利用します。

有名なのは Excel Creator です。
http://www.adv.co.jp/product/product_excelcreato …

Excel 雛形を元にファイル作成できます。
    • good
    • 0
この回答へのお礼

お礼をするのが大変遅くなりまして申し訳ありません。
製品を利用するのは予算がないので断念です。

先に回答いただいた内容で、あと少しのところまで辿り着きました。
>複数利用については、雛形ファイルをコピーする際にファイル名にセッションIDな>どを付与してユニークなワークファイルを作って操作する必要があるでしょう。

しかし、Excelのセル単位の更新ができないので
別でもう一度質問をさせていただきます。
ありがとうございました。

お礼日時:2012/06/14 17:58

簡単ですよ。


エクセルは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の保存先を記述するばしょがわかりません。
申し訳ありませんがよろしくお願い致します。

補足日時:2012/06/05 10:57
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報