>我已经使用 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 文件时,我使用的方法是
- 创建示例 Excel(单元格 A1 中的单个值将起作用)
- 另存为"XML 电子表格 2003"
- 在我的 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>
比从头开始创建要容易得多。