2016-11-10 28 views
0

我已經實現了一個下載實用程序,它在後臺線程中下載文件。現在,我想實現將每個文件的下載結果導出到Excel工作表的功能。我正在使用Microsoft.Office.Interop.Excel庫來達到此目的。因此,爲此我創建了一個excel工作簿,並在其中執行條目。我的問題是我是否在下載過程開始時打開工作簿,然後關閉工作簿完成後,還是每次我想進入時創建一個新的Excel連接?請注意,下載可能需要很長時間。我應該保持excel工作簿連接在C#中打開,或者每次需要添加新行時打開一個新連接?

回答

1

使用Interop時需要注意的一點是,您實際上是在後臺創建了一個excel.exe進程,然後使用DCOM來操作正在運行的進程。

通常,這意味着當您第一次打開文件並且Excel未運行時,加載需要一段時間。因此,如果您要進行增量更新,我會建議在後臺保持文件的打開狀態。

還要記住,Interops是硬編碼到您要定位的Office版本,並且還需要安裝Office才能運行。

個人而言,我總是使用第三方庫進行Excel操作,因爲它們比Interop程序集性能高得多,並且不需要在機器上安裝Office的硬性依賴性。我已經成功地使用

的例子是:SpreadsheetGearFlexCel

+0

我使用Interop程序集的版本15,所以會用Excel的特定版本的工作。 –

+0

它將與版本15對應的版本一起工作。它可能適用於早期版本,但不能保證。 MS定期討論版本之間公開的API,這就是爲什麼有這麼多的第三方庫存在文件格式而不是Office API版本。 – toadflakz

+0

你絕對是寫作,互操作庫是絕對廢話,我用NPOI,它運作得非常好。 –

相關問題