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

打开使用XSLT从XML创建的Excel文件时出错,xml,excel,xslt,xslt-1.0,xslt-2.0,Xml,Excel,Xslt,Xslt 1.0,Xslt 2.0,我已经使用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-microso

我已经使用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的正确方法吗?如果您只想导入表格数据,请使用您的

如果您需要完全控制公式和格式,请使用您的


重要:路线要复杂得多;如果可能的话,请使用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>
    
    
    对
    不
    
    比从头开始创建要简单得多。

    你怎么能说你“成功”地将其转换为Excel格式,而你显然没有?当我们看不到你的代码时,你怎么能指望我们知道你的代码哪里错了?