私は、Excel ファイルが広く使用されている C# プロジェクトに取り組んでいます。シートのセルの値のほとんどは、単一のセルを識別する範囲に名前を割り当てることによって参照されます。これまで、すべてのシートは単一のセルを反復して組み立てられていました。それぞれのシートは、その名前とフォーマットに沿って個別に挿入されていたため、明らかに処理が遅かったのです。物事をスピードアップしようとして、データの配列を 1 つのシートに挿入することができましたが、Range Names で同じことを行う方法をまだ見つけていません。私はまだこのコードで立ち往生しています
for (var row = 1; row <= rows; row++)
{
for (var column = 1; column <= columns; column++)
{
string refCell = GetExcelColumnName(column) + row.ToString();
myExcelWorkbook.Names.Add(labels[row - 1, column - 1], sheet.Range[refCell , refCell ], true, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue);
}
}
これは、以前のバージョンよりもさらに低速です (~10000 個の名前のリストを埋めるのに MINUTES かかります)。だから、この挿入をより高速な方法で行う方法があるかどうか疑問に思っていました.