您的位置:首页 > 编程语言 > Java开发

总结java关于jacob操作word这几天遇到的问题!

2017-12-12 11:01 681 查看
由于这几天的客户需求使用到了java关于jacob操作word的问题,下面对这几天遇到的问题进行一下总结:

  本机第一次使用jacob的时候,本机装的WPS接下来一路畅通,直到最后完成word的导出功能,部署正式环境后出现问题了,问题如下:

1、常见问题为jacob.jar 和 jacob.dll两个文件不匹配造成的,建议到官网现在最新的匹配包,或者下载我上传的资源,地址为:http://download.csdn.net/download/a_java_stu/10154851,不要怪我要的分数高,无奈我这边最小只能选5分,都是开发的
可以理解分数的重要性,我已经选的是最低的啦,现在没有0积分下载了 不知道为什么。

2、报Can’t load IA 32-bit .dll on a AMD 64-bit platform
这个错误是因为dll文件对32位和64位没有放对位置,如果不确定32位还是64位,我建议(个人使用中发现的)32位和64位在相应的位置都放。

3、下面对dll文件放的位置进行一下说明

根据我的项目说:

1)win7和win10 

在jdk/jre/bin中放两份dll(32位和64位),jdk\jre\lib\ext中放对应的jar包。其他地方我什么都没有放程序运行正常。

2)win server 2008

在jdk/bin放两份,jre/bin放32位,jdk/jre/bin中放32位,tomcat中放32位,sys32/sys64都是双份,测试程序一切正常。

3)

tomcat/lib中建议放jacob.jar。

4、我的程序在初始化word的时候抛出异常

ComThread.InitSTA();

        if (this.word == null) {

            /* 初始化应用所要用到的对象实例 */  

        try{

        this.word = new ActiveXComponent("Word.Application");   //测试是否可以正常初始化word

        }catch(Exception e){

       

        e.printStackTrace();

        }

            /* 设置Word文档是否可见,true-可见false-不可见 */  

            this.word.setProperty("Visible", new Variant(false));   

            /* 禁用宏 */  

            this.word.setProperty("AutomationSecurity", new Variant(3));   

就是在我标红的这个地方,前提是dll文件已经放对了位置和排除版本不一致的情况,在网上各种搜索未能解决,突然一个

想法是,是否和加载的office版本有关系,所以卸载了office2010
特意下载了一个0ffice2010 64位的装上,再次测试,程序正常执行。

不知道是否和这个有关系(等待具体的验证),但是切换office版本之后的确都可以了!

5、可以到控制面板--组件服务--计算机--我的电脑--DCOM配置下面寻找”Microsoft
WORD97-2003”

(这拿word做例子,其他的也相似)的节点右键单击该节点,选属性 ,切换到标识选项卡,改为“交互式用户”,

最后点击确定完成。

6、个人心得:如果该放的地方、该测试的代码都测试了就是不行,建议clean一下项目,不要完全依赖IDE。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jacob word jacob.dll java excel