3

我想从 HTML 页面创建一个 word 文档。我打算获取 HTML 页面上的值,然后将这些值传递给文档模板。我使用JSOUP来解析 HTML 页面的内容,并在我的 java 程序中获取值。我现在想将这些值传递给 word 文档模板。我想知道可以用来创建文档模板并将值传递给模板以创建 word 文档的最佳技术是什么。

谢谢你。

4

3 回答 3

5

我发现了一些非常有趣和简单的东西。我们只需为要创建的文档创建一个简单的 .xml 模板,然后以编程方式更改 xml 文件的内容并将其保存为 ms word 文档。

您可以在此处找到 xml 模板和代码。

于 2012-03-15T05:22:32.043 回答
2

我建议您使用 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>
于 2012-03-14T07:44:14.643 回答
0

JODReportsDocmosis也可能对您有用,因为有模板填充和 Doc 输出。如果 DOCX 是您的真正目标,那么您可以自己编写文档,因为 XML 已发布 - 但这是很多工作。

于 2012-03-15T08:49:24.203 回答