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

标签 c# excel range sparse-matrix

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

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

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

有没有一种方法可以更新这 30 个单元格的数据,而无需一次一个地遍历单元格?

谢谢, 汤姆

最佳答案

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

关于c# - 在 C# 中,如何使用 Excel Interop 来加速写入多个单元格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10612402/

相关文章:

c# - 在 odp.net 中插入带参数的多行

c# - 创建/更新/删除分层数据的正确方法

javascript - 如果自动完成文本框中的数据很长,则添加滚动

Excel 动态范围,如连接、计算行

swift - 为什么 Swift 编译器将其标记为错误?

c# - 对单个对象使用 LINQ 是否被认为是一种不好的做法?

excel - 如何查看数组中的项目

excel - 传递 .Range 作为参数 VBA

c - 需要帮助调试

comparison - 支持 std.range.equal 的相等运算符