使用Excel.Interop更快地访问Range的方法

时间:2015-09-09 11:50:43

标签: c# excel office-interop excel-interop

我知道有两种方式 -

_xlWorksheet.Range[_xlWorksheet.Cells[1, 1], _xlWorksheet.Cells[10, 10]].Value2 = myarray.ToArray();

_xlWorksheet.Range["A1", "J10"].Value2 = myarray.ToArray();

还有其他更快的方法吗?

根据我的理解,当我使用

_xlWorksheet.Range[_xlWorksheet.Cells[1, 1], _xlWorksheet.Cells[10, 10]]

将有三次互操作调用。 但是,如果是

_xlWorksheet.Range["A1", "J10"]

只会有一个电话。

我不确定哪一个更快。

1 个答案:

答案 0 :(得分:1)

据我所知,你的问题没有"快速"选择Range["A1", "J10"]A1:A10时的方式相同。

在Excel中,您可以通过某些方式引用范围,例如Debug.Print Sheets("Sheet1").Range("A1:A10").Address Debug.Print Sheets("Sheet1").Range(Sheets("Sheet1").Range("A1"), Sheets("Sheet1").Range("A10")).Address Debug.Print Sheets("Sheet1").Range(Sheets("Sheet1").Cells(1, 1), Sheets("Sheet1").Cells(10, 1)).Address

Dynamic SQL

选择上述之一将 NOT 确定效果。什么确定性能如何读/写