【问题标题】:Creating excel template 2003 in C# on a machine with both 2003 and 2007 installed在安装了 2003 和 2007 的机器上用 C# 创建 excel 模板 2003
【发布时间】:2010-06-17 19:00:08
【问题描述】:

我的机器上安装了 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;

【问题讨论】:

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


    【解决方案1】:

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

    来自here

    当您安装并注册 全球大会中的办公室 PIA 缓存(使用 Office 或通过 安装可再发行包 对于 PIA),绑定重定向 组件也仅安装在 全局程序集缓存。这些 组件有助于确保 主互操作的正确版本 程序集在运行时加载。为了 例如,当一个解决方案 参考 2007 Microsoft Office 主互操作程序集在 装有 Microsoft Office 的计算机 2010版同主 互操作程序集,绑定重定向 程序集指示 .NET Framework 加载 Microsoft Office 的运行时 2010 版主互操作 部件。有关详细信息,请参阅 程序集绑定重定向。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多