zoukankan      html  css  js  c++  java
  • 使用jacob报错:com.jacob.com.ComFailException: Can't get object clsid from progid

    之前自己写过一篇java 使用jacob+jacob工具类实现html页面导出word

    当时完全能导出到word文档的,也没有出现com.jacob.com.ComFailException: Can't get object clsid from progid这个问题,但是好久没在本地跑这个项目了,这个项目不仅要把jacob的一些包放在特定目录还要安装WPS,但是这么长时间没跑这个项目也没在导出过页面,我的WPS也卸载过几次,现在突然跑起来不能导出页面了。而且错误定位在下段代码的第4行:

     1     public MSOfficeGeneratorUtils(boolean visible) {
     2         if (this.word == null) {
     3             // 初始化Microsoft Office Word 实例
     4             this.word = new ActiveXComponent("Word.Application");
     5             this.word.setProperty("Visible", new Variant(visible));
     6             // 禁用宏
     7             this.word.setProperty("AutomationSecurity", new Variant(3));
     8         }
     9         if (this.documents == null)
    10             this.documents = word.getProperty("Documents").toDispatch();
    11     }

    为了解决这个问题,我去网上找了半天,我肯定是确保我之前用的jacob的包和dll文件没问题,而且都放在了该放的目录下。没办法我首先选择了重装WPS,重装了WPS还是没能解决,还是报这个错,我郁闷了,卸载WPS,重启电脑在下载安装,还是不行!这下我到处去网上找啊,网上解决这个问题也不多,最后我将问题定位在Word.Application在注册表中找不到。我首先打开注册表cmd-regedit然后在注册表中 编辑-查找Word.Application,最终没有任何结果,我很纳闷!明明我的计算机上word能使用,但是为啥注册表里没有信息!!!难受!我一开始下载WPS是在软件管家里下的,现在我不在相信软件管家了,心一狠!又在软件管家里点击了卸载WPS,但是在卸载过程中我无意间发现了下面这张图:

    之前我都是直接点击最后一个的,但是这次我点击了WPS多次异常关闭,重新安装,然后它就跳转到一个网页下载链接,我顺着这个链接下载重装了一个新的WPS安装了一下,这个WPS我仔细对比了一下,明显和我之前用的不同了,看下面这张图:

    我一开始安装的是下面一个W.P.S,明显和上面这个对比像是一个简洁版,现在我安装上面一个版本后,在到注册表里搜索:Word.Application,这回找到了!然后我在此跑起我的程序,哈哈问题解决!

      总结一下:在之前那篇使用jacob导出页面到word文档的文章中是没有bug的,能导出,但是由于你安装的word可能是那种简洁版或非绿色版,会导致在注册表里找不到Word.Application,就会出现标题里说的那个bug,最好的方式是去WPS官网下载【我没试过,但是看官网的大小和我重装的大小差不多】,或者就是使用我那种方式在软件管家里选择重装。

     

    前进时,请别遗忘了身后的脚印。
  • 相关阅读:
    mysql 行号
    java 异常链
    springsecurity密码加密
    java 四舍五入
    ArrayList的使用及原理
    java 匿名内部类
    java 克隆
    logback的配置
    信号量 Semaphore
    障碍器 CyclicBarrier
  • 原文地址:https://www.cnblogs.com/liudaihuablogs/p/10795763.html
Copyright © 2011-2022 走看看