减少Excel访问时间

时间:2015-08-05 10:59:15

标签: c# excel office-interop

我正在使用Microsoft.Office.Interop.Excel在Excel文件中使用Excel文件。 我的问题是我的程序运行速度很慢。 基本上,它的作用是迭代Excel工作表的单元格,并读取每个单元格中的数据。

我使用以下命令:

value = (range.Cells[row, col] as Excel.Range).Value2;

其中value是我的变量,range是Range类的Interop.Excel对象。

在Interop中是否有更好的方式来访问访问文件或我应该使用的其他库?

2 个答案:

答案 0 :(得分:1)

如果可能,请使用像EPPLUS这样的库,它比互操作更快,编程也更容易。

如果由于外部限制而无法实现,请尝试尽可能减少互操作的次数。在excel中进行循环是一个麻烦 - 因为每个单元格都必须通过互操作进行访问,并且从excel到您的应用程序的数据编组需要花费很多时间。使用get_Range()一次性获取整个数组要好得多。单个请求将花费很长时间,但之后在C#中循环非常快。一般来说,在C#端做任何事都是有益的 - 即使excel提供相同的功能。

答案 1 :(得分:0)

Excel Data Reader

如果阅读是您唯一的用例,那么轻量级且非常快。