在Excel中获取范围内的值时,使用“批量”方式(作为2D数组)获取比循环遍历每行和每列要更有效率。例如:
Dim range = Globals.Table.Range("A1:E5")
Dim values(,) As Object = range.Value
有25个单元格时没有太大的区别,但有10000行20列时肯定会有区别。到目前为止还不错。
我的问题是:如何为其他属性进行“批量”获取?
例如,我想找出哪些单元格以某种方式着色。我很想做一些像“range.Interior.Color”这样的事情,但它只返回一个值,而不是值数组。因此,我最终会循环,这可能会慢100甚至1000倍。对于大型表格,这真的是致命的。
看起来“.Formula”的行为就像“.Value”一样:我可以同时获取多个值。但我还没有让颜色配合得好。
StyleID
),就像在XML文件中看到的那样?在这种情况下,可以从Excel中读取所有样式数据,然后通过每个单元格的一个Interop调用将每个单元格映射到其样式。 - Paul B.