我正在維護一個當前引用Interop.Excel.dll(v 1.5.0.0)的Web應用程序。excel interop OK與Excel 2003與'Office 2007兼容包'?
的interop.excel.dll中被用來訪問Excel 2003下.xls文件,然後,隨後,Excel 2010中下的.xlsx/M的文件都能正常運作。
網頁應用程序被移到另一臺機器上(它安裝了Excel 2003,安裝了「Office 2007 Compatability Pack」),現在無法打開.xlsx/m文件(出現下面顯示的錯誤堆棧跟蹤)。
有一個關於人類開的.xlsx/M檔其他比你看到小兼容性包「轉換」對話框望了一會兒,該文件被打開那臺機器上沒有問題。
有沒有結合的一些已知的限制:Excel 2003中; 'Office 2007 Comp Pack';和.xlsx/m文件?
堆棧跟蹤
2013-04-23 16:03:00.7192|Error|An error occurred in OpenCloseManager. Details Follow:
Exception Type ---
System.Runtime.InteropServices.COMException
Message ---
The server threw an exception. (Exception from HRESULT: 0x80010105 (RPC_E_SERVERFAULT))
HelpLink ---
Source ---
Interop.Excel
StackTrace ---
at Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)
at TCG.CRRExDBInterface.BO.SpreadSheetHelper.manageExcelOpen(Boolean blnUpdateLinks) in D:\foo\ExcelDBInterface-4.7.1.0\ExcelDBInterface-4.7.1.0\ExcelDBInterface\CRRExDBInterface\App_Code\BusinessObject\SpreadSheetHelper.cs:line 1920
TargetSite ---
Excel.Workbook Open(System.String, System.Object, System.Object, System.Object, System.Object, System.Object, System.Object, System.Object, System.Object, System.Object, System.Object, System.Object, System.Object, System.Object, System.Object)|MasterSubPage.parseSecurityInfoFromSpreadsheetAndSave => SpreadSheetHelper..ctor => SpreadSheetHelper.manageExcelOpen
感謝您的評論。親自說說,我很樂意嘗試OpenXmlSDK,但「管理」不會!至於在網絡應用程序中使用interop,我只能從我的這種(低容量,低重要性)應用程序的經驗中獲益,這就是說,在這種情況下它的運行良好。我可以很容易地看到,做任何類似的音量幾乎肯定會*不是一個好主意! – shearichard 2013-05-02 01:58:39