excel COM API - 分配给一系列单元格

时间:2012-11-10 01:40:28

标签: c# excel

使用Excel API通过C#代码分配给大型工作表中的每个单元格可能效率低下,我试图分配给一系列单元格。但是,Range.Value2仅适用于多维数组。就我而言,我有一个字符串列表。有没有办法做到这一点?在列表和数组之间来回转换可能效率低下。

感谢

1 个答案:

答案 0 :(得分:1)

Excel互操作的成本是调用进程外组件的开销。需要开展工作来整理流程边界的数据。但这是一个恒定的成本,取决于数据量。数据越少越好,但这不是您的典型选择。

因此,真正的成本是首先进行呼叫的开销。与进行进程内方法调用的成本相比,它是非常可观的。在最坏的情况下,这需要少量的cpu周期。进程外调用需要两个线程上下文切换,最小成本为2000到10000个周期,仅用于处理器开销。你处于那个高端,因为需要在Excel中运行的线程由另一个进程拥有,因此处理器缓存是垃圾。添加该线程响应的延迟,高度不可预测。

因此,您已经有数千个cpu周期的数十的预算来进行转换并获得成功。明智地花钱。当然,实际上尝试它,没有人可以给你一个保证。