XDocReport:生成的 docx 文档错误“Word 在尝试打开文件时遇到错误”
Posted
技术标签:
【中文标题】XDocReport:生成的 docx 文档错误“Word 在尝试打开文件时遇到错误”【英文标题】:XDocReport: generated docx document error "Word experienced an error trying to open the file" 【发布时间】:2021-10-12 23:42:39 【问题描述】:我正在尝试使用 XDocReport 和 freemarker 生成包含表格的 .docx 格式的报告。
我正在使用列表来打印表格内的数据。
问题是java生成文档时没有报错,但是生成的文档打不开。错误说
Word 在尝试打开文件时遇到错误。
我希望输出是这样的:
我将 XDocReport 2.0.2 与 Office 2016 一起使用。感谢您提供任何帮助。谢谢。
【问题讨论】:
docx 是一个包含大量 xml 文件的 zip 文件。将文件重命名为 rating_report.zip 并查看其中是否可以找到插入的数据。 @ddekany 好吧,根据这个文档github.com/opensagres/xdocreport/wiki/…[/#list]
应该放在@after-row 标记之后。我试图在@after-row 标记之前放置一个[/#list]
并在java 中出错
@Dio 抱歉,我在您回复时删除了我的错误评论...
@ddekany 没关系
@AndersLindgren 如何知道我的数据是否已插入?我应该检查什么文件?
【参考方案1】:
右键单击文件。而不是点击“打开”点击“编辑” 就是这样,很简单。
【讨论】:
好吧,右键菜单中的“编辑”命令可能只是通过 Word 使用“打开”命令。正如其他答案和许多 cmets 所解释的那样,.docx
文件是带有特定 xml 文件集的 .zip
文件。【参考方案2】:
所以,经过几天的变通和朋友的帮助,这个问题终于解决了。所以这是我made
我在[#list p.cities as c]
之前添加了@before-row
标签,并且只有一个@after-row
标签。现在,生成的文档可以打开了
【讨论】:
【参考方案3】:我猜(不知道 XDocReport)[#list p.cities ...]
也应该以 @before-row
为前缀。否则当你对城市进行迭代时,表格行的开始标签不会重复,只有结束标签。
【讨论】:
好吧,不幸的是,没有运气。还是有同样的问题 您应该检查实际输出的 XML。 如何检查输出 XML?我应该检查什么? 一个docx是一个zip文件,解压。我相信它是由模板生成的word/document.xml
。找到里面的表。看看有没有明显的问题。就像不平衡的 XML 标记一样。
另外,您是否尝试过简单地使用 word 文件,看看是否删除了哪些部分使其起作用?以上是关于XDocReport:生成的 docx 文档错误“Word 在尝试打开文件时遇到错误”的主要内容,如果未能解决你的问题,请参考以下文章
doc以及docx文档转html文件(同时解析图片音频和视频)
XDocReport生成报告:通过表(java)中的集合循环