トップ回答者
ASP .NETでの Excelファイル出力

質問
-
-プログラムの動作要件 (WindowsServer2008 R2/WindowsXP SP3)
- 開発ツール、テクノロジ (Microsoft Visual Studio 2008/.NET Framework 3.5/C#)
- ビジネス フェーズ (実装、検証)
- 内容
サーバ(WindowsServer2008 R2)-クライアント(WindowsXP SP3)のアプリケーションシステムを、
.NET Framework 3.5/C# を使って、Microsoft Visual Studio 2008上で開発しています。
サーバ-クライアント間の通信にはWCFを使用しています。このシステムでは帳票をExcelファイルとして出力する機能がありますが、
サーバアプリケーション(サービス)から、Microsoft.Office.Interop.Excel.Application
を使用してExcelファイルにアクセスして、Open、編集、Closeするように実装しました。単体テストでは、正常に動作していましたが、結合テスト(本番相当の環境)では、
Application.Workbooks.Openが失敗します。「Officeのサーバーサイドオートメーションについて」(http://support.microsoft.com/kb/257757/ja)
を見て、「推奨もサポートもしていない」ことは理解しましたが、同サイトの代替案は期間的に無理なので他の方法を探しています。
サービス上でExcelファイルを編集している部分を別exeとして切り出し、バッチでキックする等
の方法が取れればよいのですが、現在のところうまくいっていません。当システムは、閉じられたネットワーク内で特定の少数ユーザが使用するシステムで、
本番稼働後は保守SEが常駐するため、Excelの異常によりアプリケーションが異常終了しても
その場で対処は可能です。(対話型にしなくても問題ない)
また、Excel帳票編集のためにデータベースアクセスを行っており、クライアント-サーバ間
の回線が細いため、Excel帳票編集部分をクライアント側へ移植することは不可能です。お手数をおかけして申し訳ありませんが、よろしくお願いします。
- 編集済み SANTさん 2012年4月25日 1:34
回答
-
1. 3rdパーティ製品でこういうのもあるので検討したほうがよいのではないでしょうか
http://www.adv.co.jp/product/product_excelcreator2012.htm
サービス(Windowsサービス?WCF?)でやるとどうなるかはわかりません。
2. 失敗しても良い上、常駐SEさんもいて対処してもらえるなら、いっそのことその人がいるときに
Excelファイルつくるアプリ起動してもらったらいいんじゃないでしょうか。
私なら1.の方法を検討して大丈夫ならお金出してもらうと思います。
全然直接的な回答でなくてすいません。
もし直接的な回答も欲しいのであれば(回答があるかどうかはわかりませんが)
> Application.Workbooks.Open
でどういう例外が出るのか等、実装よりの情報も必要かと思います。 -
帳票とありますので、ExcelではなくCrystal Reportsを使う方法はダメなのでしょうか? ASP.NETでExcelを扱うには、以下が参考になると思います。
(参考)
ASP.net WebサイトでクライアントにExcelを返す
http://wintips.blog117.fc2.com/blog-entry-70.html★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
-
これ、公開フォーラムでの質問投稿になっていますが、問題なかったんでしょうか?
お困りの事象と、所属について誰でも閲覧できるようになっています。公開に差し支えないのであればよいのですが。
また、Microsoft のエンジニアから回答がもらえる、パートナー向けのフォーラムに書きたかったのであれば、場所を間違えています。// 最近、MSDN Blogs でも扱われていましたね。
// ライセンス問題とセキュリティ問題などで。質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
- 回答としてマーク 山本春海 2012年5月14日 9:01
すべての返信
-
1. 3rdパーティ製品でこういうのもあるので検討したほうがよいのではないでしょうか
http://www.adv.co.jp/product/product_excelcreator2012.htm
サービス(Windowsサービス?WCF?)でやるとどうなるかはわかりません。
2. 失敗しても良い上、常駐SEさんもいて対処してもらえるなら、いっそのことその人がいるときに
Excelファイルつくるアプリ起動してもらったらいいんじゃないでしょうか。
私なら1.の方法を検討して大丈夫ならお金出してもらうと思います。
全然直接的な回答でなくてすいません。
もし直接的な回答も欲しいのであれば(回答があるかどうかはわかりませんが)
> Application.Workbooks.Open
でどういう例外が出るのか等、実装よりの情報も必要かと思います。 -
帳票とありますので、ExcelではなくCrystal Reportsを使う方法はダメなのでしょうか? ASP.NETでExcelを扱うには、以下が参考になると思います。
(参考)
ASP.net WebサイトでクライアントにExcelを返す
http://wintips.blog117.fc2.com/blog-entry-70.html★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
-
これ、公開フォーラムでの質問投稿になっていますが、問題なかったんでしょうか?
お困りの事象と、所属について誰でも閲覧できるようになっています。公開に差し支えないのであればよいのですが。
また、Microsoft のエンジニアから回答がもらえる、パートナー向けのフォーラムに書きたかったのであれば、場所を間違えています。// 最近、MSDN Blogs でも扱われていましたね。
// ライセンス問題とセキュリティ問題などで。質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
- 回答としてマーク 山本春海 2012年5月14日 9:01
-
こんにちは、SANTさん さん。
MSDN フォーラムのご利用ありがとうございます。オペレーターの山本です。
みなさんから参考になるアドバイスをいただいているようでしたので、勝手ながら私の方で回答としてマークさせていただきました。
アドバイスくださったみなさん、ありがとうございます。
いただいた情報の中で、解決に役立った投稿や、参考になる情報など有効な情報には回答としてマークすることをお願いしています。
今後、同じ問題でこのスレッドを参照される方にも、有効な情報を活用いただけるかと思いますので、ご協力よろしくお願いいたします。
_____________________
日本マイクロソフト株式会社 フォーラム オペレーター 山本 春海