我想从HTML页面创建word文档。 我打算获取HTML页面上的值,然后将这些值传递给文档模板。 我已经使用JSOUP解析HTML页面的内容,并在我的java程序中获取值。我现在想要将这些值传递给Word文档模板。 我想知道什么是我可以用来创建文档模板的最佳技术,并将值传递给模板以创建word文档。使用来自java对象的值动态地从模板创建word文档
谢谢。
我想从HTML页面创建word文档。 我打算获取HTML页面上的值,然后将这些值传递给文档模板。 我已经使用JSOUP解析HTML页面的内容,并在我的java程序中获取值。我现在想要将这些值传递给Word文档模板。 我想知道什么是我可以用来创建文档模板的最佳技术,并将值传递给模板以创建word文档。使用来自java对象的值动态地从模板创建word文档
谢谢。
XSLT例子,我发现了一些非常有趣和简单。我们只需要为我们想要创建的文档创建一个简单的.xml模板,然后以编程方式更改xml文件的内容并将其保存为ms word文档。
您可以找到xml模板和代码here。
我建议你使用xslt,因为你的数据已经是xml格式,并且有来自Microsoft的定义好的xml格式。
您可以用word编写文档模板并将其保存为xml格式。然后,您可以使用您的html-xml作为输入将word-xml转换为xsl-template。在xslt转换之后,您有一个有效的word-xml,其中包含来自html-xml的动态值。为Excel
<?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>
谢谢。我遇到了一个名为[java2word](http://code.google.com/p/java2word/)的东西。你认为这可能有帮助吗? PS:我真的不知道xslt是如何工作的。我刚开始研究它。 – 2012-03-14 08:12:45
JODReports和Docmosis也可能是有用的选项,因为有模板填充和文档输出。如果DOCX是您的真正目标,那么您可以在XML发布后自己写出文档 - 但这是很多工作。
Docmosis不是开源的,是吗? – 2012-03-15 09:37:28
不看那样。有一个免费版本,但是是专有的。 – 2012-03-15 09:53:25
是的。我正在寻找一些开源解决方案。 – 2012-03-16 06:58:44
虽然只是DOCX格式。如果您使用的是最新版本的Word,那就太好了。 – 2012-03-15 09:55:39
我能够创建一个.doc文件。我首先创建了一个包含动态值的temperory xml。然后,我使用HTTPServletResponse的response.setContentType()和response.setHeader()函数将此temp xml转换为.doc。我希望文档一旦创建就可以下载。 – 2012-10-18 05:27:13