2017-05-02 1 views
0

エクセル私はバルクを読みたいSpreadhsheetGearSpreadhsheetGearバルクを読み込むファイル

public ValueFormulaSet ReadData(string sheetName, string address) 
    { 
     var wrksh = this.Workbook.Worksheets[sheetName]; 

     var range = wrksh.Range[address]; 

     var result = new ValueFormulaSet(); 

     result.RowCount = range.RowCount; 

     result.Values = (object[,])range.Value; 

     result.Formulas = (object[,])GetFormulas(range); 

     return result; 
    } 

を使用してファイルをエクセル私は、このアプローチは全体のデータを読んで、私はバルクを使用したいとresult.Values でそれを移入することを疑問に思ってこのアプローチは、多くのメモリを消費する可能性があります。

メモリ最適化の方法を改善する方法はありますか?

SpreadhsheetGearがどのようにバルクファイルを処理するのか分かりません。 私はいくつかの遅延バッファリングを行う方法を探しています。 またはIDataReaderを実装してSqlBulkCopy.WriteToServerAsync Method (IDataReader)を実装するようなことをしたいと思います。

答えて

0

スプレッドシートギアは、Excelファイル全体を完全にロードします。 私は、彼らが「私たちの製品は 計算エンジンと豊富なワークブックの操作機能を備えた本格的なスプレッドシートコンポーネントである私に

答え、彼らの技術サポートの人たちとこの事を確認した。 このため、我々はロードする必要があります離れて部分的にしかロードここでは、ファイルの一部またはそこ で取得する をことができるかもしれないその全体-とは異なり、そこに 他のサードパーティのスプレッドシート製品のExcelファイルは、」

スプレッドシートギアは、例のために良いですここでいくつかの計算とブックの操作を実行する必要があります。 私は、データをバルクエクセルファイルからインポートするだけで、OLE DBに切り替え、SQLBulkCopyクラスをデータリーダーで使用しました。

関連する問題