我的计算机上安装了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;
答案 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无法读取该文件(没有转换插件)。