V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ooTwToo
V2EX  ›  Java

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

  •  
  •   ooTwToo · 2017-02-17 14:36:07 +08:00 · 2266 次点击
    这是一个创建于 2631 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    所以有没有好的办法?

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

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

    改模板眼睛都快瞎了
    davidway
        11
    davidway  
       2017-02-20 20:40:43 +08:00
    POI 不是比较好吗。。 WORD 和 excel 都支持,而且是 apache 的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   747 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:13 · PVG 05:13 · LAX 14:13 · JFK 17:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.