Я использую класс XslCompiledTransform .Net framework как XSLT-процессор (другими словами, Xslt 1.0).Xslt 1.0 XML to excel transform issue
Мое требование состоит в том, что я хочу преобразовать XML-файл в файл Excel (файл xls) с использованием XSLT 1.0 и .Net [4.0].
Для простоты и, поскольку это всего лишь тестовый код, я просто рассматриваю некоторые простые жесткие кодировки в моем Xsl-файле.
В частности, мои два вопроса:
- Я попытался кучу вещей, но я не могу видеть рабочий лист моего Excel лист именованного в «WABC», который является то, что я пытаюсь имя Это. Я вижу имя листа как имя моего файла. Дополнительные рабочие листы также не генерируются. Ниже мой XSL-файл
Кроме того, поскольку это тестовый код, я не могу видеть данные, выводимые на разные строки, если я не использую теги HTML. То, что я вижу:
AbcNext line
вместоAbc Nextline
Так что я делаю неправильно? Заранее благодарю за ваше время и помощь.
я установить тип содержимого моего ответа файла как
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>
Да, я думаю, это проблема. В итоге мне пришлось сгенерировать его с помощью C# без преобразования XSLT. – m27