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

时间:2013-10-21 23:37:52

标签: 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-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的正确方法

3 个答案:

答案 0 :(得分:0)

如果您只想导入表格数据,请使用XSLT transformation create a CSV file

如果您需要完全控制公式和格式,请使用XSLT transformation create OOXML

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

  1. 创建示例Excel(单元格A1中的单个值将起作用)
  2. 另存为&#34; XML Spreadsheet 2003&#34;
  3. 在我的XSLT编辑器中打开生成的XML并从那里开始工作
  4. 这样做的好处是可以为您提供所需的所有格式,因为如前所述,Excel结构可能会变得相当复杂。此外,如果您在Excel中有目标外观,那么转换为XML Spreadsheet 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>
    

    比从头开始创作更容易。