ooTwToo
V2EX  ›  Java

Java 导出 Word 表格有什么好的办法?

  •  
  •   ooTwToo · Feb 17, 2017 · 3309 views
    This topic created in 3376 days ago, the information mentioned may be changed or developed.

    尝试过了 POI ,导出 Excel 还不错,但是导出 Word 就比较弱了。设置样式合并单元格非常麻烦,导致代码混乱、可读性差。

    所以有没有好的办法?

    11 replies    2017-02-20 20:40:43 +08:00
    xiaobu945
        1
    xiaobu945  
       Feb 17, 2017
    用 XML 方式,提前设计好 word 模板,把需要替换的地方用特殊标记标出来
    depress
        2
    depress  
       Feb 17, 2017
    poi 只适合用来操作 Excel ,隐约记得 jacob 对 word 支持比较好
    ooTwToo
        3
    ooTwToo  
    OP
       Feb 17, 2017
    @xiaobu945 对于复杂的表格,模板是做不到的。比如表格内容不固定的情况下。
    ooTwToo
        4
    ooTwToo  
    OP
       Feb 17, 2017
    @depress jacob 是通过 Java 的 JNI 调用本地的 Com 接口,也就是说,最终操作 Excel 、 Word 的还是你本地机器上的 Office 组件, Jacob 只是提供了一个调用的桥接而已,这也就限定了 jacob 只能在 windows 的操作系统上应用,并且该系统必须也已经安装了 Office 组件。
    depress
        5
    depress  
       Feb 17, 2017
    @ooTwToo ...jacob 这么坑,还好之前没用...那我就想不到其他对 Word 友好的库了...
    murmur
        6
    murmur  
       Feb 17, 2017
    @xiaobu945 这个必须有一步操作,就是调用 office 另存为,而这步还是跑不掉 jacob

    能不能退而求其次,用户不编辑给他个 pdf 可以么
    ooTwToo
        7
    ooTwToo  
    OP
       Feb 17, 2017
    @murmur 可以考虑下。如果导出 pdf 的话,我会选择 html 转 pdf ,不知道有什么更好的办法?
    murmur
        8
    murmur  
       Feb 17, 2017
    @ooTwToo 不知道你们是啥 我们用的 birt 导出报表的 没做太复杂的东西
    ooTwToo
        9
    ooTwToo  
    OP
       Feb 17, 2017
    @murmur 看了下 birt 不错啊!但是和我们的使用场景不一致,我们是在程序里组装好数据,然后才导出~
    xxdd
        10
    xxdd  
       Feb 17, 2017
    用过 freemarker

    改模板眼睛都快瞎了
    davidway
        11
    davidway  
       Feb 20, 2017
    POI 不是比较好吗。。 WORD 和 excel 都支持,而且是 apache 的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2919 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 07:00 · PVG 15:00 · LAX 00:00 · JFK 03:00
    ♥ Do have faith in what you're doing.