减少Excel访问时间



我正在用c#工作,使用Microsoft.Office.Interop.Excel。我的问题是我的程序运行得很慢。基本上,它所做的是遍历Excel工作表的单元格,并读取每个单元格中的数据。

我使用以下命令:

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

,其中value是我的变量,range是互操作。Range类的Excel对象。

在互操作中是否有更好的方法来访问访问文件,或我应该使用的另一个库?

如果可能的话,使用像EPPLUS这样的库,它比互操作要快得多,而且更容易编程。

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

Excel Data Reader

最新更新