代码之家  ›  专栏  ›  技术社区  ›  paul

如何在Excel中加载XML文件?

  •  1
  • paul  · 技术社区  · 16 年前

    我有一个OfficeML格式的Excel文件,我的数据.xls. 自从我从Office2003升级到Office2007后,我收到一条警告消息,说文件内容与文件扩展名不匹配。看来OfficeML现在必须具有扩展名“xml”。

    在我的应用程序中,我使用OleClientSite在OleFrame对象中显示文件。如果我将文件扩展名更改为“xml”,则不会启动Excel。如果我将扩展名保留为“xsl”,则会收到上面的警告消息。

    3 回复  |  直到 16 年前
        1
  •  2
  •   TimS    15 年前

    最简单的解决方案是切换回2003格式,这不需要对应用程序进行任何更改。为此,请打开扩展名设置为*.xls的文件。当出现警告提示时(“。。。是否现在打开文件?”),继续打开(这是一个警告,以确保不会无意中打开启用宏的文件)。在Excel中打开文件后,只需将其保存为*.xls。这可以通过转到“Office按钮/另存为/Excel 97-2003工作簿”来完成。

    现在,更困难的解决方案是升级应用程序以处理新的OfficeML格式。我不知道您正在使用的组件,但它可能仍然适用于新标准中的一些二进制部分(最显著的是VBA工程),但是您必须先解包并开始读取XML文件。

    如果尚未执行此操作,请创建一个新的Excel工作簿,将其另存为*.xlsx(2007格式),然后在资源管理器中将其扩展名更改为*.zip。打开看看周围。为了更深入地了解这些文件,我将开始消化这些内容 MSDN article .

        2
  •  1
  •   Salman A    15 年前

    也许我漏了点什么,但你不该用一下吗 .xslx 作为你的分机?我想你是指 Office Open XML .

        3
  •  1
  •   itsbalur    13 年前

    这个 <?mso-application progid="Excel.Sheet"?> 应该出现在所使用的XSL模板中。 下面的链接清楚地解释了如何包括处理指令。我不得不做一些类似的事情,这对我很有效。

    http://www.shareyourwork.org/roller/ralphsjavablog/entry/generating_excel_sheets_with_xslt