我正在尝试从一堆数据中生成xlsx报告。我有手机号码,区号和朋友的名字,想要使用xml和xsl将它们插入到xlsx文件中。 我很难插入数据的标题,我似乎无法获取每列的数据。现在,他们只是捣碎在一起,没有分离器。
XML文件
<?xml version="1.0" encoding="ISO-8859-1"?>
<jx:template xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
<friends>
<jx:forEach var="friendsDetail" items="${friendList}">
<friend
Name="${friendsDetail.getName()}/"
MobileNumber="${friendsDetail.getMobileNumber()}"
AreaCode="${friendsDetail.getAreaCode()}"
/>
</jx:forEach>
</friends>
</jx:template>
XSL文件
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" />
<xsl:strip-space elements="*" />
<xsl:template match="friend">
<xsl:value-of select="@Name" /><xsl:text/>
<xsl:value-of select="@MobileNumber" /><xsl:text/>
<xsl:value-of select="@AreaCode" /><xsl:text/>
</xsl:template>
</xsl:stylesheet>
基本上,我希望数据在xlsx文件中出现如下:
Column 1. Column 2. Column 3.
Row 1. Name Mobilenumber Areacode
Row 2. Peter 48785635 4817
任何提示都将不胜感激!
输出是这样的。
答案 0 :(得分:2)
如果要将制表符分隔的文件导入Excel,可以先定义一个参数来保存分隔符的
字符。<xsl:param name="separator" select="'	'" />
您可以使用xsl:variable
,但调用应用程序可以覆盖参数,以便您轻松切换到逗号。
然后,您可以在模板中轻松输出分隔符
<xsl:value-of select="@Name" />
<xsl:value-of select="$separator" />
试试这个XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" />
<xsl:param name="separator" select="'	'" />
<xsl:strip-space elements="*" />
<xsl:template match="friends">
<xsl:text>Name</xsl:text>
<xsl:value-of select="$separator" />
<xsl:text>Mobile Number</xsl:text>
<xsl:value-of select="$separator" />
<xsl:text>Area Code</xsl:text>
<xsl:text> </xsl:text>
<xsl:apply-templates select="friend" />
</xsl:template>
<xsl:template match="friend">
<xsl:value-of select="@Name" />
<xsl:value-of select="$separator" />
<xsl:value-of select="@MobileNumber" />
<xsl:value-of select="$separator" />
<xsl:value-of select="@AreaCode" />
<xsl:text> </xsl:text>
</xsl:template>
</xsl:stylesheet>