Java根据word模板生成word文档之前言

     由于java之诞生起,就是在linux下得到很好的发展,而微软的东西基本上始终只能在他的平台上运行,在实际的需求之中,对office办公软件的使用那是大大的,基本上每个企业都在使用,但是作为web项目中,难免有客户提出这样那样的需求,比如说:”系统自动生成word文档“ 这个需求也许会难倒不少人,因为在咱们Java的世界中,没有直接对office操作的组件或者说底层接口。

   先说具体的需求:公司有很多种类型的word报告,而且类型不固定,可能随时增减(意思说word模板是不固定的),那么没增减一个word报告模板,只需要上传word模板,然后点击生成就能生成相应的报告,word中的数据来自于数据库中,还有可能来自于其他的固定word中(比如某种报告的固定头等),同时往word报告中写入的数据可能包含:文字、表格、图片等...具体需求就是这么多。

     

  拿到这个命题,或者说为了满足这个需求,咱们一般的做法有很多种,你首先应该会想到:


   (1)采用流的方式去解析word,这种方式可以实现简单的功能----文字什么的可以,假如需要处理word中的表格、图片等,咱们我还没有想到好办法。而且操作起来也相当复杂。

    (2)采用开源的POI,这个也能实现简单的word生成,比如打开、读取、写入等、但是根据固定的格式去生成word。那么就很难了。同时对word的本身样式也不能很好支持,意思说 假如我想插入一段字符 ,但这段字符默认为 “黑体 加粗” 那就很难做到了。  

    (3)可能采用我们以前做过的一个方法来做,就是通过做好word模板,然后将其保存为xml文件,然后再解析xml文件,将固定字符解析出来,进行替换然后保存为一个word文档ok,但是你要是采用这种方式做的时候 ,你会发现特别麻烦,不过也是一个方式。

    (4)采用一个java开源的组件-----jacob组件,也许你听说过,反正我现在是用这个来做的(这也是我推荐的),也是我要讲解的。采用这个技术能很好的实现上面的所有功能。

   (5)采用itext-2.17-rtf 生成rtf格式的文档,word支持rtf文档的。这种也是可以的

   (6)可能还有其他方式我就不说了,包括采用现在商业话的word控件来实现,但是实际上根本无法很好的满足这个需求,对做简单我觉得很好,花了钱的东西,自己做的工作相对可能少些。

(未完待续)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值