我是否应该在c#中保持excel工作簿连接打开,或者每次需要添加新行时打开一个新工作簿

本文关键字:工作簿 添加 新行时 一个 或者 excel 是否 连接 | 更新日期: 2023-09-27 18:17:09

我实现了一个下载实用程序,在后台线程下载文件。现在,我想实现将每个文件的下载结果导出到excel工作表的功能。为此,我正在使用Microsoft.Office.Interop.Excel库。因此,为此,我创建了一个excel工作簿,并在其中做条目。我的问题是我是否在下载过程开始时打开一个工作簿,并在过程完成时关闭工作簿,或者每次我想要做一个条目时都要创建一个新的excel连接?请注意,下载可能会花费很多时间。

我是否应该在c#中保持excel工作簿连接打开,或者每次需要添加新行时打开一个新工作簿

使用Interop需要记住的是,您实际上是在后台创建一个excel.exe进程,然后使用DCOM来操作正在运行的进程。

通常,这意味着当你第一次打开一个文件时,Excel没有运行,它将需要时间来加载。因此,如果您要进行增量更新,我建议在后台保持文件打开状态。

还要记住,互操作是硬编码到你的目标Office版本的,并且还需要安装Office才能运行。

就我个人而言,我总是使用第三方库来操作Excel,因为它们比Interop程序集性能更高,并且没有需要在机器上安装Office的硬依赖。

我成功使用的例子是:SpreadsheetGear和FlexCel