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

bun*_*ggo 8 c# excel range sparse-matrix

我有一块硬件,我得到30个数据点.在工作表可见之前,这些点中的每一个都记录在几个不同位置的电子表格中,然后另一个程序接管excel电子表格.在其他程序接管之前,需要将所有这些值写入电子表格.如果我单独写每个单元,则写入大约需要50ms,这需要大约1.25秒才能完成数据采集.

如果我可以一次性将所有值写入电子表格,我觉得这将显着加快所有这些单元格的写入速度.我看到的问题是Ranges非常适合更新连续的单元格,因为我的数据不是连续的.基本上,这将是我想写的一个例子:
A1 = 1
B23 = a
F8
= 2012/12/25 D53 = 4.1235
B2 = 5

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

有没有办法更新这30个单元格数据而无需一次迭代一个单元格?

谢谢,汤姆

Eug*_*sev 3

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