如何利用XSL文件生成EXCEL时一次生成多个worksheet?
Reaky 2007-06-20 02:19:55 本来以为用多个table就可以搞定,但实际却不是,如下代码全都生成到一个worksheet中了, 请高手帮帮忙啊.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<style>
.xlHeader{font-family:Arial;font-size:12px;background:#CCFFCC;}
.xlNumberField{vnd.ms-excel.numberformat:#,###.00;font-family:Arial;font-size:12px;}
.xlTextField{mso-number-format:'\@';text-align:left;font-family:Arial;font-size:12px;}
.xlShortDateField{mso-number-format:'Short Date';text-align:left;font-family:Arial;font-size:12px;}
.xlTitle{font-size:20px;font-family:Arial;font-weight:bold;background:#FFFF99;height:30px;}
</style>
<xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name>Sheet1</x:Name>
<x:WorksheetOptions>
<x:ProtectContents>False</x:ProtectContents>
<x:ProtectObjects>False</x:ProtectObjects>
<x:ProtectScenarios>False</x:ProtectScenarios>
</x:WorksheetOptions>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
</x:ExcelWorkbook>
</xml>
</head>
<body>
<table border="1" cellpadding="0" cellspacing="0">
<xsl:for-each select="NewDataSet/title">
<tr>
<td colspan="9" align="Center" class="xlTitle"><xsl:value-of select="Title"/></td>
</tr>
</xsl:for-each>
<tr>
<th class="xlHeader">ActivityType</th>
<th class="xlHeader">Description</th>
<th class="xlHeader">Unit</th>
<th class="xlHeader">Category</th>
</tr>
<xsl:for-each select="NewDataSet/table0">
<tr>
<td class="xlTextField"><xsl:value-of select="ActivityType"/></td>
<td class="xlTextField"><xsl:value-of select="Description"/></td>
<td class="xlTextField"><xsl:value-of select="Unit"/></td>
<td class="xlTextField"><xsl:value-of select="Category"/></td>
</tr>
</xsl:for-each>
</table>
<table>
<xsl:for-each select="NewDataSet/title2">
<tr>
<td colspan="9" align="Center" class="xlTitle"><xsl:value-of select="Title"/></td>
</tr>
</xsl:for-each>
<tr>
<th class="xlHeader">Value</th>
<th class="xlHeader">Text</th>
<th class="xlHeader">Category</th>
</tr>
<xsl:for-each select="NewDataSet/table2">
<tr>
<td class="xlTextField"><xsl:value-of select="value"/></td>
<td class="xlTextField"><xsl:value-of select="text"/></td>
<td class="xlTextField"><xsl:value-of select="category"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>