我使用 .Net 框架的 XslCompiledTransform 类作为 XSLT 处理器(换句话说,Xslt 1.0)。
我的要求是我想使用 XSLT 1.0 和 .Net [4.0] 将 XML 文件转换为 Excel 文件(xls 文件)。
为简单起见,因为这只是测试代码,我只是考虑对我的 Xsl 文件进行一些简单的硬编码。
具体来说,我的两个问题是:
- 我已经尝试了很多东西,但是我看不到我的 Excel 工作表的工作表被命名为“wAbc”,这就是我想要命名的。我将工作表名称视为我的文件名。也不会生成其他工作表。下面是我的 XSL 文件
此外,由于这是测试代码,除非我使用 HTML tags ,否则我看不到不同行上输出的数据。我看到的是:
AbcNext line
而不是美国广播公司下线
那么我做错了什么?提前感谢您的时间和帮助。
我将文件响应的内容类型设置为
application/vnd.ms-excel
这是我的测试 Xsl 文件:
<?xml version="1.0"?>
<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:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<xsl:template match="/">
<xsl:processing-instruction name="mso-application">progid='Excel.Sheet'</xsl:processing-instruction>
<Workbook>
<Worksheet ss:Name="wAbc">
<Table ss:ExpandedColumnCount="2" x:FullColumns="1" x:FullRows="1" ss:DefaultRowHeight="15">
<Column ss:AutoFitWidth="20" ss:AutoWidth="65"></Column>
<Row>
<Cell>
<Data ss:Type="String">Abc</Data>
</Cell>
</Row>
<Row>
<Cell>
<Data ss:Type="String">Next line</Data>
</Cell>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
</WorksheetOptions>
</Worksheet>
</Workbook>
</xsl:template>
</xsl:stylesheet>