【问题标题】:Efficiently inserting rows in an Excel spreadsheet using C#使用 C# 在 Excel 电子表格中有效插入行
【发布时间】:2013-01-09 02:52:57
【问题描述】:

我有一个包含约 1500 行数据的电子表格。在电子表格顶部插入行时,我发现使用以下代码插入单行的性能大约为 2.5 秒:

Excel.Range insert_range = _excel.Worksheets["Sheet Name"].Range[insert_address];
insert_range.Insert(Excel.XlDirection.xlDown, Type.Missing);

但是,如果行数增加到 20(每次插入),则性能保持不变,约为 2.5 秒。

有什么办法可以提高excel插入这些行的速度?

编辑

性能似乎与工作表中现有数据的数量相关,例如,一个包含 150 行的工作表需要 0.23 秒,这似乎是成比例的。

谢谢

【问题讨论】:

  • 将它们添加到数据集的底部而不是顶部将大大提高性能。插入强制表格重新计算我认为的每一行
  • 您是否尝试过将计算设置为手动并在执行插入时关闭屏幕更新?

标签: excel c#-4.0 com excel-interop


【解决方案1】:

谢谢大家。

我发现按照 Pynner 的建议,将行添加到数据集的底部是最佳选择。

Tim,我禁用了 ScreenUpdating 并设置了 Calculation = Manual,但这并没有产生任何重大影响。

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多