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

【ASP.NET】動的にExcelを作成するにあたって【Excel?】

1
投稿者投稿内容
んちょ。
常連さん
会議室デビュー日: 2006/02/22
投稿数: 28
投稿日時: 2006-06-18 23:23
こんばんは。
お世話になります。

早速ですが、ASP.NET(VB+SQLServer2000)でWEBアプリを作成しているのですが、
画面構成が
A--1入力画面-1確認画面
-2入力画面-2確認画面
-3入力画面=3確認画面

のように、Aの画面に1〜3の入力画面へリンクがはってあり、各入力画面で入力後、
次の確認画面で入力画面の内容を表示およびボタン押下にてExcel形式でダウンロードする画面をつくりました(DataGridで表示したものをExcelに吐き出しクライアントブラウザからExcelファイルをダウンロード)。
これですと、入力画面を必ず通らないとファイルをダウンロードできません。また、Aの画面では14個のリンクが張ってあり、最大14個のファイルをダウンロードしなければならないので、入力する側の手間がものすごくかかります。(ダウンロードだけしたいときも入力画面を通らないといけないし。。。)
そこで、どうすればよいか悩んでいるので皆様のお力を貸していただけるとありがたいです。

自分が考えたのは以下の2通りの方法です。
入力済みのものに対して、Aの画面に[一括してダウンロード]のようなボタンをおき、
@複数のエクセルファイルを自己解凍形式の書庫に圧縮する
Aひとつのエクセルで、複数シートを作成しひとつのファイルとしてダウンロードさせる

方法は思いついたのですが、コードは・・・
過去ログは
http://www.atmarkit.co.jp/fdotnet/dotnettips/361aspzipfile/aspzipfile.html
http://www.atmarkit.co.jp/fdotnet/dotnettips/309aspgenpdf1/aspgenpdf1.html
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=24226&forum=7
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=4471&forum=7
のあたりを一通りよんでみました。でもやっぱり自分がしようとしているのとは違う気がして解決に至っていません。

自分が認識しているDataGrid⇒Excelファイルというのは、あくまでも表示されたDataGridの内容をExcelファイルにする
ということなのですが、
最大14の画面があって14のDataGridを表示してからその内容をExcelにするにはものすごく時間がかかるか、下手すればタイムアウトとかしてしまいそうな予感がします。
ということは@もAも方法的にはだめなんでしょうか

長々と書いてしまいましたが、何かアドバイスいただけるとうれしいです。
よろしくお願いします。
_________________
*:.。..。.:*・゚・*:.。..。.:*
 いつまでも初心者。
 今日からは脱初心者。
 By んちょ。
*:.。..。.:*・゚・*:.。..。.:*
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2006-06-18 23:49
技術的な問題ってよりは、仕様の問題だと思います。
入力項目とExcelの内容にはどのような関係があるのでしょうか?
ユーザーはExcelをダウンロードするのが目的なのですか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-19 00:12
引用:

ちょんまげさんの書き込み (2006-06-18 23:23) より:

DataGridで表示したものをExcelに吐き出しクライアントブラウザからExcelファイルをダウンロード
これですと、入力画面を必ず通らないとファイルをダウンロードできません。


この 「入力画面」 は、ユーザーの入力が絡んでくるのでしょうか?
であれば、一括ダウンロードという仕様自体が不可能ですね。
決まりきったあるテーブルを参照して、ダウンロードするのであれば可能ですが。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
んちょ。
常連さん
会議室デビュー日: 2006/02/22
投稿数: 28
投稿日時: 2006-06-19 06:53
おはようございます。
レスありがとうございます。

確かに、おっしゃるように技術的な問題よりも、
仕様の問題でもあると思います。

入力画面はユーザーの入力が絡んできます。
ユーザーが入力した内容を印刷・保存するためにExcelにてダウンロードという形にしてあります。
入力項目もユーザーごとに違うので、datagridにデータバインドするときには、いろんな条件で絞り込んであります。

やっぱり一括でダウンロードという方法には難がありそうです。
もう少し自分でいろいろ考えてみますが、ご意見等ありましたら、じゃんじゃんお願いします!!!
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-19 07:13
引用:

ちょんまげさんの書き込み (2006-06-19 06:53) より:

入力画面はユーザーの入力が絡んできます。ユーザーが入力した内容を印刷・保存するためにExcelにてダウンロードという形にしてあります。入力項目もユーザーごとに違うので、datagridにデータバインドするときには、いろんな条件で絞り込んであります。


これだと、サーバサイドの端末が利用者の心を読むことができない限り、
「入力画面を通さずに一括ダウンロード」 は不可能ですよね。

引用:

やっぱり一括でダウンロードという方法には難がありそうです。


そうですね、ダウンロード自体は一括で行えますが、
入力が絡むとなると、ダウンロードの手間くらいしか補えないかもしれませんね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
んちょ。
常連さん
会議室デビュー日: 2006/02/22
投稿数: 28
投稿日時: 2006-06-21 07:33
おはようございます。
レスおくれてごめんなさい。

自分の中では、すべての入力が終わったらダウンロードボタンを表示し、そこから一括でダウンロードできないか?と考えたのですが。
特に、入力後に確認画面にてダウンロードし忘れた場合に、入力画面を経て確認画面にてダウンロードするのがわずらわしいと思うので。Aの画面で、入力済みのものに関してだけダウンロードボタンを表示させるようにしようかなぁ。
それ以外改善のしようがないような気がしてきました。
未記入
ベテラン
会議室デビュー日: 2003/06/26
投稿数: 76
投稿日時: 2006-06-21 13:48


[ メッセージ編集済み 編集者: 未記入 編集日時 2007-01-19 21:56 ]
1

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