【问题标题】:XDocReport: generated docx document error "Word experienced an error trying to open the file"XDocReport:生成的 docx 文档错误“Word 在尝试打开文件时遇到错误”
【发布时间】: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 如何知道我的数据是否已插入?我应该检查什么文件?

标签: java freemarker xdocreport


【解决方案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 文件,看看是否删除了哪些部分使其起作用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    相关资源
    最近更新 更多