非常に大きなデータセット (約 40k 行) があります。エクセルファイルに書き込みたい。
セルごとにデータを書き込むExcelファイルへの書き込みを既に試みましたが、動作します。
私が直面している問題は、Excel に書き込むのに時間がかかることです。
同じことを行う効率的な方法はありますか。
すべての行/列をループする代わりに、データセット全体をメモリ内の配列に割り当ててから、この配列を同じ次元の Range オブジェクトに割り当てます。VBA では、これは次のようになります。
Dim arr as Variant
arr = ... ' Your code to fill the array here
Set Workbook("YourWorkbook").Worksheets("Worksheetname"). _
Range(1,1).Resize(40000, 20).Value = arr
これをC#に翻訳できることを願っています...
Excel に直接書き込む場合、Albert のアイデアは機能しますが、それでも遅くなります。EPPLUS のようなライブラリを使用して、大量のデータを Excel に書き込みます。より高速で信頼性が高いです。