从Excel中的范围中获取值时,以“批量”(作为二维数组)的值比循环遍历每行和每列更有效。例如:VSTO:在“批量”中获取Excel单元格属性
Dim range = Globals.Table.Range("A1:E5")
Dim values(,) As Object = range.Value
拥有25个细胞中,这并没有太大的差别,但有10,000行20列它当然不会。到现在为止还挺好。
我的问题是:有没有人找到一种方法来为其他属性做同样的“批量”获取?例如,我想查找哪些单元格以某种方式着色。我很想做一些类似“range.Interior.Color”的东西,但是这只会返回一个的值,而不是数组的值。所以我最终循环,这可能是100甚至1000倍慢。对于大型桌子来说,这真是一个杀手。
PS:它看起来像.Formula的行为就像.Value:我可以一次获取多个。但我还没有哄骗颜色变得好玩。
我感谢您的帮助!
+1好贴雷切尔。 – brettdj
你碰巧知道是否有任何方法可以访问我可以在VBA/VSTO的XML文件中看到的单元格样式引用('StyleID')?在这种情况下,可以从Excel中读取所有样式数据,然后将每个单元映射到其样式,每个单元只有一个Interop调用。 –