これまでもClosedXMLをつかってExcelファイルとしてデータを保存する処理をしてきましたが、これまではこんなやり方をしていました。

まず書き込み用のデータをジャグ配列で用意します。

このジャグ配列をこれまでこんな方法で保存していました。

ジャグ配列をそのまま保存する方法はないのでしょうか? 調べてみるとこんな方法がありました。

どちらが速いのでしょうか? 実際に実験してみるとあまりかわりません。arrayの要素数を大きくして実験してみました。

配列の大きさを16万にします。

SaveExcelFile1()とSaveExcelFile2()の両方で実験してみると両方とも9.2秒です。パソコンの性能にもよりますが、片方が目に見えるほど速いというわけではなさそうです。

それからPythonでも同じように保存にかかる時間を計測してみます。16 * 10000行、まず4列のデータをつくります。

ここまで時間はほとんどかかりません。

17.63320779800415と出力されました。pandasではなく別のライブラリを使うと違ってくるかもしれませんが、これならC#とClosedXMLを使ったほうが速そうです。