QA@IT
この質問・回答は、@ITの旧掲示板からインポートされたものです。

【Excelオブジェクト】処理速度の改善について相談

いつもお世話になっております。
質問させて頂きます。

開発環境:VS.NET 2003
開発言語:C#

件名の通り
Excelオブジェクトを使用しております。
Excel帳票を作成する事が目的ですが
処理速度が遅い為、改善策が無いか調査しております。

現在、実装している方法は単純に
Excelのセルを1個ずつ参照し
データを設定しています。(下記一部抜粋)
***************************************
xlRange1 = (Excel.Range)xlCells[ 43, 11 ];
xlRange1.Value2 = this.m_insRptFile.BackCutLength.ToString("###0.0");
***************************************

上記以外に複数まとめてセル上にデータを吐き出す方法や
別途、Excelオブジェクト以外にExcel帳票を出力する方法がある等
ありましたら情報を頂けないでしょうか。
同じ事で苦労された経験の有る方、ご教授下さい。
宜しくお願い致します。

質問者:ダイコク

回答

ダイコクさんの書き込み (2006-03-31 22:19) より:

上記以外に複数まとめてセル上にデータを吐き出す方法や

別途、Excelオブジェクト以外にExcel帳票を出力する方法がある等

ありましたら情報を頂けないでしょうか。

同じ事で苦労された経験の有る方、ご教授下さい。

宜しくお願い致します。

ひろれいと申します。

私も現在、サーバ側でExcel帳票を作成し、それをクライアントにダウンロードさせるというシステムの開発を行なっているのですが、私のところは アドバンスソフトウェアの ExcelCreator という製品を採用しています。

ExcelCreator5.0 for .NET

トライアル版(製品版と機能は変わらないようです)が無料で使用できますので、一度試してみてはいかがでしょうか。
他部署でも私の話を聞き、導入したところ、速度改善が出来たそうです。

ただ、機能に制限があったりしますので、その辺は色々と試してみた方がよいと思います。

投稿者:ひろれい

編集 履歴 (0)

ダイコクさんの書き込み (2006-03-31 22:19) より:

Excelオブジェクトを使用しております。

Excel帳票を作成する事が目的ですが

処理速度が遅い為、改善策が無いか調査しております。

基本的に根本的な解決はありません。
速度であれば、非同期に実行される帳票コンポーネントなどがお勧めです。

現在、実装している方法は単純に

Excelのセルを1個ずつ参照しデータを設定しています。(下記一部抜粋)

Cell 単位ではなく (本当の意味での) Range にすれば少し改善できるかな。

_________________C# と VB.NET の入門サイト
じゃんぬねっと日誌

投稿者:じゃんぬねっと

編集 履歴 (0)

VB6のフレキシブルコントロールでは、各セルに値を入れるよりも、
文字列で連結していってクリップボードで渡す方が速かったです。
エクセルでも速いかどうかはわかりませんが(^^;

投稿者:R・田中一郎

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。