2009-06-30 19 views
2

複数のExcelワークシート(新しいスプレッドシート/ Excelファイル)にエクスポートするDataTableがあります。私が持っているコードにすでに存在する "解決策"は、2つのネストされたループであり、すべての行と列を繰り返し、データをセルごとに挿入します。プロセスが10分以上かかるため、これは理想的ではありません。結果として得られるスプレッドシートが8.5MBというかなりの量のデータがありますが、確かに高速な方法が必要ですか?DataTablesを複数のExcelワークシートにエクスポート

私はこれを行うためにOffice Interopライブラリを使用しています。私はどこかでCSVをインポートできることを読んで覚えていると思います。この場合、DataTableをCSVに変換してからExcelにインポートする方が早いでしょうか?

+0

スプレッドシートギア社を所有しています。それが1つのように使用されている場合、それは最終的に分解されます。 –

+0

はい、それは問題ありません。これは、データベースからデータを読み込み、計算し、何らかの理由でDataTableでサポートされているいくつかのDataGridに結果を表示し、スプレッドシートにエクスポートするツールです。 –

答えて

2

おそらく、RangeオブジェクトのValueプロパティ設定ツールを使用すると、スピードアップが可能です。各セルを個別に設定するよりもはるかに高速に機能する配列を受け入れます。このサンプルはhttp://support.microsoft.com/kb/302096にあります。

+0

A-ha、よく見えます。私はこれを行って、何が起こるかを見てみましょう... –

0

にはExcelと同様のAPIがありますが、実際には8.5MBのワークブックを生成するのは現代サーバーでは1秒間で<となります。 SpreadsheetGearにはIRange.CopyFromDataTableメソッドも含まれています。

ライブASP.NETサンプル(C#& VB)hereを表示し、評価hereをダウンロードできます。

免責事項:Excelはデータベースではありません:私は、警告され

+0

うわー、本当にうまく見えますが、これは単なる内部ツールなので、価格を正当に正当化することはできません。 –

関連する問題