2010-04-13 50 views
1

我的機器上安裝了2003和2007 Excel版本。 當前源代碼使用Office11(2003)互操作程序集Microsoft.Office.Interop.Excel.dll來創建Excel模板。在安裝了2003和2007的機器上在C#中創建Excel模板2003

當我創建模板並在Excel 2007中打開時,它完全打開。 當我在2003年打開時使用相同的模板我收到消息「文件格式無效」。

_excel = new Excel.Application(); 
_workbooks = _excel.Workbooks; 
_excel.Visible = false; 

_excel.DisplayAlerts = false; 

// create and add a workbook with 1 worksheet named "Sheet1" 
_workbook = _workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); 

_sheet = (Excel.Worksheet)_workbook.ActiveSheet; 

回答

1

如果您安裝了兩個版本的互操作程序集,則可能有一個綁定重定向程序集將Office11調用重定向到Office12程序集。

here

當您安裝並在全局程序集 緩存註冊 辦公室PIA的(無論是與Office或 安裝可再發行組件包 爲PIA的),綁定重定向 組件也僅在全局程序集緩存中安裝了 。這些 程序集有助於確保在運行時加載主要互操作程序集 的正確版本。對於 例如,當 引用的2007 Microsoft Office 主互操作程序集的解決方案具有了Microsoft Office 2010 版本相同的主 互操作程序集的 計算機上運行,​​綁定重定向 集會指示.NET框架 運行時加載Microsoft Office 2010版本的主互操作程序 程序集。有關更多信息,請參閱 裝配綁定重定向。

這將意味着您的代碼正在調用Excel 2007,因此會創建Excel 2007格式文件,而Excel 2003無法讀取該格式文件(無需轉換插件)。

相關問題