我有一个 XML 文件,我需要将其内容导入 Microsoft Word 2007 文档。
我有一个构建 WordprocessingML 表的 XSL 文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
<xsl:output method="xml" indent="yes"/>
<w:style w:type="table" w:styleId="TableStyle">
<w:name w:val="Table Style"/>
<w:tblPr>
<w:tblBorders>
<w:insideH w:val="single" w:sz="4" w:space="0" w:color="auto"/>
</w:tblBorders>
</w:tblPr>
</w:style>
<xsl:template match="list">
<xsl:processing-instruction name="mso-application">
<xsl:text>progid="Word.Document"</xsl:text>
</xsl:processing-instruction>
<w:tbl>
<w:tblPr>
<w:tblStyle w:val="TableStyle"/>
</w:tblPr>
<w:tblGrid>
<w:gridCol w:w="100" />
<w:gridCol w:w="200" />
<w:gridCol w:w="1024" />
</w:tblGrid>
<w:tr>
<w:tc><w:p><w:r><w:t>ID</w:t></w:r></w:p></w:tc>
<w:tc><w:p><w:r><w:t>Description</w:t></w:r></w:p></w:tc>
</w:tr>
<xsl:apply-templates select="items/item">
<xsl:sort select="id" order="ascending"/>
</xsl:apply-templates>
</w:tbl>
</xsl:template>
<xsl:template match="items/item">
<w:tr>
<w:tc><w:p><w:r><w:t>
<xsl:value-of select="id"/>
</w:t></w:r></w:p></w:tc>
<w:tc><w:p><w:r><w:t>
<xsl:value-of select="description"/>
</w:t></w:r></w:p></w:tc>
</w:tr>
</xsl:template>
</xsl:stylesheet>
我使用 Word INCLUDETEXT 字段导入 XML 文件并应用转换:
{INCLUDETEXT "E:\\Spinner\\Documents\\data.xml" \t "E:\\Spinner\\Documents\\stylesheet.xsl"}
就实际导入数据而言,这可以正常工作 - 显示一个包含我需要的数据的基本表格。
然而,该表没有任何格式 - 没有边框、没有网格线、没有阴影等。Word 会忽略我在 XSL 文件(<w:gridCol w:w="100" />
等)中指定的列宽并设置自己的列宽。
我需要使用(最好)文档中已经存在的样式对其进行格式化,例如“表格网格”或“中底纹 1 - 重音 3”。但是,我无法让 Word 实际应用该样式,无论是针对 Word 文档中已经存在的样式 ( <w:tblStyle w:val="TableGrid"/>
) 还是新定义的 XSL 文件样式 ( <w:tblStyle w:val="TableStyle"/>
)。
有没有人有任何指示?