从 C# Interop 加载项更新部分 Excel 工作表的快速方法

Fast Way to Update part of Excel worksheet from C# Interop Add In

我正在尝试找到一种快速更新 Excel 电子表格(C# Interop)的方法。这是一个 Excel 加载项,工作表在完全填充后将有大约 20000 行。我目前的流程如下:

我可以看到三种提高速度的方法。首先 - 遵循 Tim Williams 的建议并将 ScreenUpdating 调用移到循环之外。其次 - 如果您的单元格是序列,请使用 Range.Value 属性:

一次为所有单元格赋值
object[,] example = new object[2,2] { {1, 2}, { 3, 4}};
activeWorksheet.Range[activeWorksheet.Cells[1,1], activeWorksheet.Cells[2,2]].Value = example;

另一种方式,如果多个单元格中的值相同,使用Application.Union函数将多个单元格作为一个范围并一次赋值。