我编写了一个 VSTO DLL 来对用户指定的单元格范围执行转换。我正在通过以下方式执行此操作:
Globals.ThisAddIn.Application.EnableEvents = false;
int totRows=inputRange.Rows.Count;
int totCols=inputRange.Columns.Count;
for (int i = 1; i <= totRows; i++) {
for (int j = 1; j <= totCols; j++) {
if (((Range)inputRange.Cells[i, j]).Value2 != null) {
((Range)outputSheet.Cells[i, j]).Value2 = MyTransform(((Range)inputRange.Cells[i, j]).Value2);
}
}
}
Globals.ThisAddIn.Application.EnableEvents = true;
这种方法允许我每小时修改大约 150 万个单元(我没有计算 MyTransform() 消耗的时间),这在我看来非常慢。
是否有更有效的方法来读取/写入 VSTO 中的单元格?
如果没有,将其转换为 XLL(可能使用 Excel-DNA)会更快吗?猜猜多少钱?