2012-05-16 34 views
8

我有一塊硬件可以獲得30個數據點。在表單可見之前,這些點中的每一個都記錄在電子表格中的幾個不同位置,然後另一個程序接管Excel電子表格。需要在其他程序接管之前將所有這些值寫入電子表格。如果我單獨寫入每個單元,寫入大約需要50ms,這需要大約1.25秒才能完成數據採集。在C#中,如何使用Excel Interop來加速編寫多個單元值

如果我一次可以將所有值寫入電子表格,我覺得這會顯着加快所有這些單元格的寫入速度。我看到的問題是Ranges非常適合更新連續單元格,因爲我的數據不是連續的。本質上,這將是我想要寫一個例子:
A1 = 1
B23 =一個
F8 = 2012年12月25日
D53 = 4.1235
B2 = 5

我有嘗試創建一系列「A1,B23,F8,D53,B2」,然後使用值數組設置值。我嘗試了3個不同的數組:對象[5],對象[1,5]和對象[5,1]。這些都將範圍內指定單元格的值設置爲我在所有情況下創建的數組的第一個索引。

有沒有辦法更新這30個單元格的數據,而不是一次一個遍歷單元格?

感謝, 湯姆

+0

如果這是按照你說的解決。請接受尤金Ryabtsev的答案。 – rcdmk

回答

3

如果您的架構允許,另一個想法是使用具有連續矩形範圍的隱藏工作表,爲其零件設置名稱並在所有其他工作表上使用這些名稱。

0

我會定義一個矩形範圍內的對象,其中包括要修改其值的所有單元格。從該範圍的值屬性中獲取一個矩形的object[,]數組。將新值寫入數組,然後使用修改後的數組設置範圍的值。

+0

是的,我想嘗試一下,但是單元格的範圍變得很大,並且恐怕有各種各樣的圖表和公式可能會干擾這個。儘管如此,我仍然可以嘗試。謝謝。 – bunggo

+1

@bunggo在這種情況下,我會說尤金Ryabtsev的建議看起來很有希望。 – phoog

0

您可以將值寫入到某處不存在的連續單元格中,例如在X列中,並且在引用這些更新的單元格的目標單元格中​​具有公式。因此單元格A1將具有公式「= X1」,單元格B23「= X2」等等。

相關問題