我有一個XML文件,其內容需要導入到Microsoft Word 2007文檔中。如何在Word中使用XSL導入XML?
我有一個構造一個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"}
這工作得很好遠就像實際導入數據一樣 - 將顯示一個基本表格和我需要的數據。
但是,該表格沒有任何格式 - 沒有邊框,沒有網格線,沒有陰影等。字忽略了我在XSL文件(<w:gridCol w:w="100" />
等)中指定的列寬並設置它自己的。
我需要使用(最好)文檔中已有的樣式(如「表格網格」或「中等陰影1 - 重點3」)對其進行格式設置。但是,我無法讓Word實際應用樣式,既可以用於已存在的Word文檔樣式(<w:tblStyle w:val="TableGrid"/>
),也可以用新定義的XSL文件樣式(<w:tblStyle w:val="TableStyle"/>
)。
有沒有人有指點?
如果你不能得到那個工作,嘗試了altChunk? – JasonPlutext 2012-08-11 07:30:05
感謝您的建議。我會研究altChunk,但從我最初的調查來看,它看起來比我需要的更復雜,而且可能對我的用戶來說太複雜。 – Spinner 2012-08-13 13:51:11