使用 XSLT 打开从 XML 创建的 Excel 文件时出错



>我已经使用 xslt 成功地将 xml 转换为 excel,但是当我尝试打开文件时,它会显示一条警告消息,指出该文件采用不同的格式。 我在 XSLT 上的标头看起来像

<xsl:stylesheet 
  version="1.0"
  xmlns="urn:schemas-microsoft-com:office:spreadsheet"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  xmlns:msxsl="urn:schemas-microsoft-com:xslt"
  xmlns:user="urn:my-scripts"
  xmlns:o="urn:schemas-microsoft-com:office:office"
  xmlns:x="urn:schemas-microsoft-com:office:excel"
  xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
> 
  <xsl:output method="xml" encoding="utf-8" indent="yes" />
  <xsl:template match="/">

任何人都可以指出从xml创建excel的正确方法

如果只想导入表格数据,请让 XSLT 转换创建 CSV 文件

如果需要完全控制公式和格式,请让 XSLT 转换创建 OOXML。

重要: OOXML 路由要复杂得多;如果可能的话,请使用 CSV 导入。

我非常不愿意尝试从头开始创建 Excel 电子表格的转换。格式太复杂了,调试结果太难了。

我准备做的是编写一个转换,该转换将 (a) 现有的 Excel 电子表格作为输入,在某些单元格中可能具有可识别的"占位符"字符串,以及 (b) XML 数据文档,并修改提供的电子表格以将不同的数据放入单元格中。

从 XSLT 构建 Excel 文件时,我使用的方法是

  1. 创建示例 Excel(单元格 A1 中的单个值将起作用)
  2. 另存为"XML 电子表格 2003"
  3. 在我的 XSLT 编辑器中打开生成的 XML 并从那里开始工作

这样做的好处是可以为您提供所需的所有格式,因为如前所述,Excel 结构可能会变得相当复杂。此外,如果您在 Excel 中有一个目标外观,则转换为 XML 电子表格 2003 将保留大部分样式,从而减少您的整体工作。

一旦你把它放在编辑器中,就像找到正确的单元格并放入你的 XSLT 语句一样简单:

<!-- Live -->
    <Cell ss:StyleID="s50796">
        <Data ss:Type="String">
            <xsl:choose>
                <xsl:when test="@islive = 'true'">
                    <xsl:text>Yes</xsl:text>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:text>No</xsl:text>
                </xsl:otherwise>
            </xsl:choose>
        </Data>
    </Cell>

比从头开始创建要容易得多。

相关内容

  • 没有找到相关文章