在C#中使用大型Excel范围的最有效方法?

时间:2014-08-04 17:42:38

标签: c# excel excel-interop

我正在使用C#中的Excel Interop,我正在编写代码来对带有数万行数据的表进行一些复杂的操作。它往往运行得很慢。

我经常将数据存储在某种变量中,在最终将结果写入工作表之前,我会执行一些中间计算。

我确信这不是一个好方法,但我经常发现自己构建了一个临时工作表,当我的代码执行完毕后将被删除,这样我就可以在数据上使用Range属性的Excel方法而不是尝试在数组中实现类似的方法。最常见的是,这涉及诸如按多列排序,删除重复项等内容。这些列几乎总是有许多不同类型的数据(字符串,整数,带有两个小数位的数字 - 尽管存储在这些单元格中的实际数据类型不是似乎总是很简单(例如,100000000.01似乎有时是double类型,其他时候是十进制)。处理所有不同数据类型的最简单方法似乎只是使用Excel范围,这就是为什么我的代码经常创建临时工作表,然后在我的代码中删除它们。

处理这些类型情况的正确有效方法是什么?

1 个答案:

答案 0 :(得分:1)

看看这些链接

  1. http://www.clear-lines.com/blog/post/Write-data-to-an-Excel-worksheet-with-C-fast.aspx
  2. Excel Interop - Efficiency and performance
  3. http://xldennis.wordpress.com/2012/01/30/best-practices-export-data-to-excel/
  4. 如果要更新速度非常慢的单个单元格。但总的来说,excel互操作很慢。您是否考虑过创建CSV文件,然后使用excel interop转换最终结果?