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

ASP.NETでExcelを使うかどうか・・・。

1
投稿者投稿内容
ひろきち
会議室デビュー日: 2002/09/13
投稿数: 18
投稿日時: 2003-04-04 11:54
久しぶりに書き込みさせてもらいます。ひろきちです。
システム開発をしている中で、下記のような事で悩まれた方がいらっしゃいましたら、
ご指導願いたいのですが、宜しくお願い致します。

ASP.NETを利用して、システムを組んでいく中で、
契約書等の帳票を表示、印刷を行いたいと言う要件が出てきて頭を抱えております。

通常VB等で組むなら参照設定等を利用しVBからExcelを動かして、該当者データを契約書を作って終わりなのですが、同じ事がASP.NETでも出来るにも関わらず、Microsoftが無人の非対話形式のシステムでは、推奨しないと言うコメント・・・。社内等で使う場合は、割り切れるのですが、お客様等へ提供の場合、何があるか分からないから困ると言われる場合が多く、同じ様な事で悩まれた方がおられましたら、参考意見などお聞かせ願えると有り難いと考えています。

こちらとしての代替案として、下記のような物を考えています。

【代替案1】
@契約書等の雛型Excel(データ取り込みマクロ入り)をダウンロードページを作成し、おいて置く。
A利用したいExcelをお客様にダウンロードして頂く。
B顧客データの表示画面で、契約書内容のCSVファイルををお客様にダウンロードして頂く。
Cお客様にExcel雛型ファイルを起動して頂き、Excel内部でCSVデータを取り込み契約書が出来上がる。

問題点
この場合、お客様の手数が増える事がネックです。
(まぁ、推奨されてない作り方をするなと言われる代わりですから我慢していただきますが・・・。)

【代替案2】
@ASP.NET用の、アクティブレポート(もうすぐ出て来るらしいです)を利用する。

この場合、いつ出てくるかの確証と、機能の見えない部分がある為、保留ですが・・・。

【代替案3】
@契約書をサーバー側でPDFで作成し、ダウンロードさせる。

この場合、契約書の内容を後から修正できない事がネックです。

【代替案4】
@契約書をHTMLで作成し、ブラウザから印刷して頂く。

この場合も、契約書の内容を後から修正できない事がネックです。
また、印刷が綺麗に出ない様に思われる事もあります。

以上のような事を考えてはいるのですが、
いかんせん一人で考えるとある一定の域から越えません・・・。
代替案は多少出るものの、やはり、使う側の今までの慣れを考えると、
多くは、Excelを使いたいと言う希望は無くならなく悩みます。

勝手な質問と思われるかも知れませんが、同じ様な事でお困りだった方が
どのような方法で、実装されたのか知りたいと思いました。

もしこんな方法あるよと言うようなご意見がありましたら、
お聞かせください。以上長くなりましたが宜しくお願い致します。

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-04-04 13:03
こんにちは。

 CrystalReportを使うという案は?

 案3,4で、「契約書を後から修正できない」とされていますが、契約書を「修正」できるのは問題ではないでしょうか。契約書の修正には、それに関わる人の承認がいると思います。
nora
会議室デビュー日: 2002/12/16
投稿数: 13
投稿日時: 2003-04-04 13:13
少し前に、同様のことで悩んで、最終的には不本意な形でのシステム導入をしました。

ひろきちさんがおやりになりたい顧客要件を実現するためには、MSとしては「Excel XPをクライアントにして、Webサービスを利用する」システムを推奨しているように私には思えます。

印刷の問題、あるいは手元でちょっと加工したい、といった処理に対してExcelに取り込める、というのは、いままでならcsv形式でデータ出力できます、とか、VBから直接xlsファイルを作成する、という方法がとれましたが、同様のことをWebシステムでやろうとする際、どうしてもまわりくどい方法になってしまって、C/S版→Web版になって逆に使いにくくなった、と顧客苦情がでかねません。

というわけで私は、Excel XP+Webサービスが一番スマートだと思います。

http://www.microsoft.com/japan/office/developer/webservices/

#しかし、私がかかわった業務では、この案は没になり(社内ノウハウがない、納期の問題、反
#MS派の台頭 等により)、けっきょくまわりくどく、かつ、MSの推奨していないExcelをサ
#ーバ側で非対話形式の起動をしてxlsファイルを作成して、クライアントからはIEでホストす
#る形でExcelシートを表示させ、必要に応じてxlsファイルのDLも可能にする、という形を採
#りました。(しかもxlsファイルを作成するのはVB6アプリ。これをASP.NETから呼び出す形。
#てっとりばやく動くもの、を作るにはいいですが、パフォーマンス、カスタマイズ、メンテに
#とっては最悪です。)

ps
必要な帳票の中身にもよりますね。固定フォーマットでデータ部分を動的に変えたい場合にこの方法もいいとおもいます。逆に静的ならDLリンクだけで十分ですし。


[ メッセージ編集済み 編集者: nora 編集日時 2003-04-04 13:16 ]
nobusue
会議室デビュー日: 2002/02/25
投稿数: 4
投稿日時: 2003-04-04 15:45
Tableを組んだHTMLを、Excelファイルとして返すのはどうでしょうか?
Content-Typeに"application/vnd.ms-excel;charset=Shift_JIS"を設定すればできると思います。

スタイル設定などの見た目も、だいたい引き継げるようです。
CSVだとできませんよね。
石野 光仁
会議室デビュー日: 2002/04/18
投稿数: 18
投稿日時: 2003-04-04 16:12
はじめまして。

私なら・・・
まず、エクセルで作った帳票を、EXCELからHTML出力にして保存します。
そのファイルを元にサーバーから修正して送り出すという方法を使います。

出来るかの確認としては、今あるExcelのファイルをHTML形式で保存して
それをそのままブラウザーで開いてみてください。デザインが崩れたり
しなければOKだと思います。そのファイルを印刷の雛形ファイルにして、
サーバー側で値をセットしてブラウザーに送り込めばいいと思います。
ちなみに、クライアントにエクセルが入っているとエクセルで編集も
出来るようになると思います。

どうでしょうか?
ひろきち
会議室デビュー日: 2002/09/13
投稿数: 18
投稿日時: 2003-04-09 15:35
Jittaさん、noraさん、nobusueさん、ME-5501さん、
色々なお返事本当にありがとうございます。

皆さんすばやいレスで、色々考える事が出来て助かりました。
返答のレスを書くのが遅くなって申し訳ありません。

一応、社内、客先で検討したしたところ、
代替案1のCSV+EXCELマクロに落ち着きました。(>_<)

本心とすれば、noraさんの提案して頂いた案を試したかったのですが、
短期間過ぎてリスクが大きいのと、他の諸事情によって、
今回は見送りになってしまいました・・・。
その理由の一つに、既にサーバー等を前回収めた別システムで構築している為に、
環境の再構築を避けたかったと言うのもあります。
(説明不足でしたごめんなさい)

あと、請求書等の帳票データを編集しても良いか?と言うご意見には、
私も同意見なのですが、現状、結構多くのお客さん(規模によりますが・・・)では、
本来、編集不可であることは分かってはいても、実業務で変更可能を希望されています。

この事を考えると、使いやすいより良いシステム作りについて、悩みますね。
顧客要件を含めつつ、使いやすさの面での提案等をお見せしたりしないといけませんし、
良かれと思う事が、お客さんの立場からすれば、余り使い勝手が良くなかったり・・。
かと言って、言われるがままに作れば良いと言うのも考え物ですし・・・。
すいません、話が少しそれました

一方的な、書き込みで、返答も遅れてしまって、本当に申し訳ありませんでした。
皆さんのレスは、本当に考える幅が増え助かりました。本当にありがとうございました。

1

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