最近老板让我搞java操纵word的一些操作。有一定的感想于大家分享下。
主要让我实现的功能如下:实现模版套打功能
工程协议
 该用户!@{name}@!需要的信息。这个只是lkiz
中文ddddd!@{pwd}@!fsdfsdfsd!@{delete}@!层
这个word 文档中的内容。通过java控制并修改该word的内容。
在需修改处用!@{修改处}@!标识。
通过一段时间的研究。发现根本无法实现此功能。
最初用poi 实现,结果发现poi的功能对excle的操作还不错。
但对word却不行。他只能够读里面的数据。拿到一个String对象。
用字符流把里面的数据写到word中可以,但是无法控制字体大小。
看过了poi 的api感觉始终无法对所需功能进行操作。转jxl 
然后通过搜索jxl 对word 的操作发现其功能于poi相似也是无法操作word。
有人说jacob 和java2word 可以对他进行很好的操作。观察了一下。
这两种东西同出一辙几乎是一样的东东,只是java2word把jacob封装了进去。
对所需功能还是无法实现,无法定位每个!@{}@!的位置。而且此技术不是纯java代码。
需要安装或者在system32下面加入jacob.dll的类库文件。感觉稳定性和兼容性都不好。
不能跨平台操作。所以不予考虑。结果有寻找了一段时间。就是使用jni java去调用c++的
动态连接函式库去实现操作word的功能。还是一样不稳定对平台可能还有局限。
这只是我个人的一些看法,难道java无法操纵word吗?希望大家能给与解答!!!!

解决方案 »

  1.   

    我也要做导出word的功能,问一下楼主,poi能不能生成表格呢?
      

  2.   

    楼主的要求有难度,我生成word的功能最后用itext生成rtf实现了,楼主可以考虑试用rtf格式
      

  3.   

    web开发语言操作word的功能最好还是用第三方的控件,
    您看看这个SOAOFFICE,还可以使用js 写VBA呢
    http://www.kehansoft.com/soaoffice/doclist.asp