java操作word 的有哪几种方式
遇到一个需求 要求用户上传word模板 服务端做替换占位符 生成表格 表格插入数据
poi 插入的表格在文章末尾 替换的字符串太长的话也无法替换 所以不能用
jacob 不支持linux 所以也不能用
网上找openoffice+JODConverter 操作word 以及itext操作word的资料很少 大多是word转pdf的 问一下有没有 用过这两种方法操作word的 或者还有别的更好的解决方案
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(15)
pageOffice 就可以 在线编辑,处理word是最专业的
用Free Spire.Doc for Java操作Word不错,基本上超过百分之九十几的Word功能都支持,包括生成和操作表格,代码比较简单易懂:http://www.e-iceblue.cn/Introduce/Free-Spire-Doc-JAVA.html
支持在指定位置插入表格 填充数据吗
用 pageoffice 在线操作word 把.可以在指定的位置创建表格,给表格单元格赋值. 跟 office 上的word 的效果是一样的. 代码简单.服务器端支持windows 系统和linux 系统. 浏览器兼容性也很好.
如果可以用云服务,XDOC可能是最好的选择:http://www.xdocin.com/office.html
回复
支持表格循环,支持html,图表等,好好看看
如果是商业化系统,有需要后台linux支持,那么购买aspose是个不错的选择。
我试一下 谢谢
这种方式兼容性最好,处理表格等比较麻烦
我做过类似的生成word文档的功能,用占位符的方式替换用户的字符,是将word修改后缀为.zip,然后解压,将里面document.xml里的占位符替换,然后重新打包成压缩包,改下后缀名为.doc,这种方式简单 比其他组件效果要好,不过容易出错
itext处理太弱了,格式不容易控制
freemarker主要问题是开发工作量比较大,嵌入代码后再修改样式比较麻烦
回复
如果格式是固定的,往里边嵌入内容的话用freemarker方式比较适合的,尤其是一个针对比较复杂(有表格,有文档结构图等)的word模板。我之前碰到的就是这样的word模板所以使用了这种方式,还是看需求选择吧。
回复
@叶落花开 : xdoc尝试将这个处理简单化,看看这个也许对你有些启发:http://www.xdocin.com/office.html
iText我用过,但是仅用于生成简单的word 参考文章:https://blog.csdn.net/aeolus1019/article/details/7973255
另外还有一种做法是把用户上传的word模板转成xml,然后操作xml里的数据,数据填充完成后再保存成doc格式。我之前用这种方法操作word时只有一个固定的模板所以采用了这种做法。参考文章:https://www.jianshu.com/p/f58802a29d8a