從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調用。 –