如何使用javascript将xslt文件下载到.xls

how to download xslt file to .xls using javascript

本文关键字:文件下载 xls xslt 何使用 javascript      更新时间:2023-09-26

我正在将数据导出到.xls,在谷歌搜索后,我发现这可以使用xml到xslt,然后再到excel来完成。但我坚持使用javascript将xslt文件下载到.xls文件。

任何有解决方案的人如何做到这一点。

提前感谢

我认为您根本不需要让JavaScript处理XSLT转换。支持XSLT的浏览器应该为您应用转换。

有关更详细的示例,请参阅W3schools关于xsl转换的页面。

总体思路是:给定一个原始XML文档,编写一个XSL样式表来定义转换模板。这为XML文件中的各种元素定义了它们应该转换成什么。W3schools文章中的示例将XML转换为XHTML。

对于XML中的每一个节点或节点类型(For-each是此处需要注意的关键字),都定义了一个(XHTML)代码片段,它将替换翻译输出中的这些节点。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
   <html>
       <body>
           <h2>My CD Collection</h2>
           <table border="1">
               <tr bgcolor="#9acd32">
               <th>Title</th>
               <th>Artist</th>
               </tr>
               <xsl:for-each select="catalog/cd">
                   <tr>
                   <td><xsl:value-of select="title"/></td>
                   <td><xsl:value-of select="artist"/></td>
                   </tr>
               </xsl:for-each>
           </table>
       </body>
    </html>
</xsl:template>
</xsl:stylesheet>

这里发生的情况是,根被<html><body>标记替换。其他节点用表条目等替换。

您的转换取决于XML文件的布局,在您的情况下应该遵循XLS文件的正确结构。

最后,在XML文档中包含对XSL文件的引用。

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
<catalog>
...
</catalog>

如果您有一个符合XSLT的浏览器,它将很好地将XML转换为所需的格式。

stackoverflow.com上其他地方的一些讨论,其中包括如何将XML文件转换为正确的XLS格式的示例。