在C#中,如何使用Excel Interop来加速编写多个单元格值

我有一个硬件,我得到30个数据点。 每个这些点都logging在电子表格中的几个不同的地方,然后另一个程序接pipe了Excel电子表格。 要求所有这些值在其他程序接pipe之前写入电子表格。 如果我单独写入每个单元,写入大约需要50ms,大约需要1.25秒才能完成数据采集。

如果我可以一次把所有的值写入电子表格,我觉得这将大大加快所有这些单元格的写作。 我看到的问题是,范围工作得非常好,因为我的数据不是连续的更新连续的单元格。 从本质上讲,这将是我想写的一个例子:
A1 = 1
B23 = a
F8 = 2012/12/25
D53 = 4.1235
B2 = 5

我已经尝试创build“A1,B23,F8,D53,B2”的范围,然后使用值数组设置值。 我尝试了3个不同的数组:object [5],object [1,5]和object [5,1]。 这些都将范围内的指定单元格的值设置为我在所有情况下创build的数组的第一个索引。

有没有办法更新这些30个单元格的数据,而不是一次一个遍历单元格?

谢谢,汤姆

如果您的架构允许,另一个想法是使用具有连续矩形范围的隐藏工作表,为其部分设置名称,并在所有其他工作表上使用这些名称。

我将定义一个矩形的范围对象,其中包含所有要修改其值的单元格。 从该范围的value属性中获取一个矩形object[,]数组。 将新值写入数组,然后使用修改的数组设置范围的值。

您可以将值写入连续的单元格中,例如在X列中,并在目标单元格中​​引用这些更新单元格的公式。 因此,单元格A1将具有公式“= X1”,单元格B23“= X2”等等。