我正在使用c#VSTO和Interop lib來開發Excel加載項。用於在將這些值粘貼到具有格式的其他工作簿之前驗證每個單元格的值。我的實際查詢是用一些標準來處理單元格(以最快的方式)。使用多線程處理大型Excel文件
我已經使用WorkSheet.Cells.SpecialCells()獲取我感興趣的Excel.Range對象,並使用線程同時處理Excel.Range(由SpecialCells()返回)。 以下是一些的意見/問題:
- 看來Excel.Range依據不能分割偏移量和長度(即我不能得到基於一些現有的範圍抵消新的Range對象和計數)
- 如果我們在線程中共享範圍對象並試圖以不同批次處理單元格,我們會得到以下異常: 「消息過濾器指示應用程序正忙(來自HRESULT的異常:0x8001010A(RPC_E_SERVERCALL_RETRYLATER))」留下那批細胞未處理。
解決上述問題的任何輸入或指針都會有所幫助。在任何時候處理大型Excel文件的任何建議,在幾秒鐘內(這是現在最大的瓶頸)
我期望在這些對Range對象的調用中進行的COM工作不喜歡多個線程。如果您只需要讀取和寫入新的工作表,可以查看[OpenXML SDK](https://msdn.microsoft.com/en-us/library/office/bb448854.aspx)或完全託管的C# Excel庫,如[EPPLUS](http://epplus.codeplex.com/) – rene
感謝您的信息。 。 ..我會考慮這兩個選項 –