在安装了2003和2007的计算机上的C#中创建excel模板2003

时间:2010-04-13 17:49:17

标签: c# .net excel-2007 excel-2003

我的计算机上安装了2003和2007 Excel版本。 当前源代码使用Office11(2003)互操作程序集Microsoft.Office.Interop.Excel.dll来创建Excel模板。

当我创建模板并在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 个答案:

答案 0 :(得分:1)

如果安装了两个版本的互操作程序集,则可能有一个绑定重定向程序集,它将Office11调用重定向到Office12程序集。

来自here

  

安装并注册时   办公室PIA在全球集会   缓存(使用Office或by   安装可再发行组件包   对于PIA),绑定重定向   组件也只安装在   全局程序集缓存。这些   程序集有助于确保   主互操作的正确版本   程序集在运行时加载。对于   例如,当一个解决方案   引用2007 Microsoft Office   主互操作程序集在一个   具有Microsoft Office的计算机   2010版同样的小学   互操作程序集,绑定重定向   程序集指示.NET Framework   运行时加载Microsoft Office   2010版主要互操作   部件。有关更多信息,请参阅   装配绑定重定向。

这意味着您的代码正在调用Excel 2007,因此会创建一个Excel 2007格式文件,Excel 2003无法读取该文件(没有转换插件)。