我想从HTML页面创建word文档。 我计划在HTML页面上获取值,然后将这些值传递给文档模板。 我使用JSOUP来解析HTML页面的内容,并在java程序中获取值。我现在想将这些值传递给word文档模板。 我想知道什么是我可以用来创建文档模板的最佳技术,并将值传递给模板以创建word文档。
谢谢。
答案 0 :(得分:5)
我发现了一些非常有趣和简单的东西。我们只需要为要创建的文档创建一个简单的.xml模板,然后以编程方式更改xml文件的内容并将其另存为ms word文档。
您可以找到xml模板和代码here。
答案 1 :(得分:2)
我建议您使用xslt,因为您的数据已经是xml格式,并且有很好的xml格式的xml格式。
您可以使用word编写文档模板并将其保存为xml格式。然后,您可以将word-xml转换为xsl-template,并将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>
答案 2 :(得分:0)
JODReports和Docmosis也可能是您的有用选项,因为有模板填充和文档输出。如果DOCX是您的真正目标,那么您可以自XML发布以来自己写出文档 - 但这需要做很多工作。