2016-04-15 4 views
1

C#.NETを使用して、Excelテンプレートファイルに対して以下の操作を順番に実行します。サーバー上でExcelを実行する - C#Interop Excel

  1. オープンExcelテンプレート
  2. 読むのSQLビューからのデータとExcelテンプレート内のシートに書き込むという名前に基づいています
  3. 更新ピボットテーブルにコピーされたデータのための
  4. セットの名前付き範囲範囲
  5. パスワードで保護されたファイルをダウンロード可能な形式で返します。下記の

は見なさオプションは次のとおりです。 1. Microsoft.Office.Interop.Excel - ドライバは、上記のすべての機能を実現し、しかし、運転手はないサーバーにインストールするExcelクライアントツールが必要ですすべての環境にExcelをインストールするように要求することはできません。 2.サードパーティの製品 - Excel Package Plusと呼ばれる無料のドライバがほぼすべての要件を満たしていたようです。ピボットテーブルをリフレッシュすることを除いて、上記の操作リストですべてを行うことができました。 3.既存のExcelファイルにマクロを書き込んでピボットテーブルを更新する - リフレッシュは、ユーザーがファイルを開いて遅延が発生したときに発生します。また、ピボットテーブルを更新してファイルをダウンロードする必要があります。

上記のすべてのオプションを使用すると、明らかに障害が発生しています。私はそれがExcelのインストールされている1つのサーバーにExcelのテンプレートを配置し、Webサーバーからアクセスすることが可能かどうか疑問に思っていた。この方法で、WebサーバーにドライバをインストールしなくてもInterop.Excelを使用できます。これが期待どおりに機能するかどうかはわかりません。

答えて

2

サーバーでInteropを使用しないでください。私はそれをやって、それは悪夢です - あなたはプロセスを凍らせ、メモリリークと犬のパフォーマンスが遅くなります。

私がお勧めしたいのは、使用できるすべてのものにEPPLUSを使用し、Open XML SDKを使用してExcelファイルを開き、名前付き範囲を設定することです。

Open XML SDKは、Excelを含むOffixe XMLドキュメントを編集するための低レベルのAPIです。あなたはそれを使ってOfficeでできることをすべて実行できます。複雑なので、できるだけ早くepplusを使用することをお勧めします。これは、手動編集の落とし穴の多くを回避するためです。

あなたが渡したドキュメントをビルドするためのC#コードを作成するツールを覚えています。名前付き範囲のExcelドキュメントを渡して、コードで名前付き範囲を構築する方法を確認できます。私はツールがSDKに含まれていたと思います

関連する問題