如何利用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>

...全文
434 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Reaky 2007-06-22
  • 打赏
  • 举报
回复
難道沒有高手吧?
Reaky 2007-06-21
  • 打赏
  • 举报
回复
KimmKing(秦风意动(NAF Framework--代替Web Service)) 高手,请指教一下,我照你的方法做了,可还是一样啊,没有看到如何与XML关联的.麻烦把代码贴上来看一下啊.急死我了.
kimmking 2007-06-21
  • 打赏
  • 举报
回复
XSL+XML

新建一个空excel文件
在sheet1和sheet2中随便加入一些数据
文件 保存为网页

然后看看html文件你就会明白了。
banni2003 2007-06-21
  • 打赏
  • 举报
回复
XSL+XML来实现没做过,帮顶~~
Reaky 2007-06-21
  • 打赏
  • 举报
回复
二楼的说的没错,是只有一个sheet但我希望能生成多个,不知如何做.由于用EXCEL.Application生成的比较慢,所以希望用XSL+XML的方式实现
hanguoji84 2007-06-20
  • 打赏
  • 举报
回复
帮顶~
banni2003 2007-06-20
  • 打赏
  • 举报
回复
从头到尾只看到一个sheel,对XSL不熟但是在C#中生成多个sheel要使用循环来解决的,如果需要代码的话我可以发给你做为参考。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧