【发布时间】:2012-03-14 06:54:19
【问题描述】:
我想从 HTML 页面创建一个 word 文档。 我打算获取 HTML 页面上的值,然后将这些值传递给文档模板。 我使用JSOUP 来解析 HTML 页面的内容,并在我的 java 程序中获取值。我现在想将这些值传递给 word 文档模板。 我想知道我可以使用哪些最佳技术来创建文档模板并将值传递给模板以创建 word 文档。
谢谢。
【问题讨论】:
我想从 HTML 页面创建一个 word 文档。 我打算获取 HTML 页面上的值,然后将这些值传递给文档模板。 我使用JSOUP 来解析 HTML 页面的内容,并在我的 java 程序中获取值。我现在想将这些值传递给 word 文档模板。 我想知道我可以使用哪些最佳技术来创建文档模板并将值传递给模板以创建 word 文档。
谢谢。
【问题讨论】:
我发现了一些非常有趣和简单的东西。我们只需为要创建的文档创建一个简单的 .xml 模板,然后以编程方式更改 xml 文件的内容并将其保存为 ms word 文档。
您可以找到xml模板和代码here。
【讨论】:
我建议您使用 xslt,因为您的数据已经是 xml 格式,并且有来自 microsoft 的明确定义的 xml 格式。
您可以用word 编写一个文档模板并将其保存为xml 格式。然后,您可以将 word-xml 转换为 xsl 模板,并将您的 html-xml 作为输入。在 xslt 转换之后,您将拥有一个有效的 word-xml,其中包含来自 html-xml 的动态值。
Excel 的 XSLT 示例
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="no" />
<xsl:template match="/">
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" 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:for-each
select="/yourroot/person">
...
<Cell ss:StyleID="uf">
<Data ss:Type="String">
<xsl:value-of
select="@Name" />
</Data>
</Cell>
..
</xsl:for-each>
...
</xsl:template>
</xsl:stylesheet>
【讨论】:
JODReports 和 Docmosis 也可能对您有用,因为有模板填充和文档输出。如果 DOCX 是您的真正目标,那么您可以自己编写文档,因为 XML 已发布 - 但这是很多工作。
【讨论】: