java中通过jacob调用word方法

转载 2007年09月12日 16:20:00

java中通过jacob调用word方法

public static void main(String[] args) {
    //启动word,生成一个ActivexComponent对象
    ActiveXComponent app = new ActiveXComponent("Word.Application");
    //要转换的word文件
    String inFile = "D://project//java_word//java_word//wordtemplet.doc";
    //要报存的目标文件
    String tpFile ="D://project//java_word//java_word//wordtemplet3.doc";
    boolean flag = false;
    Dispatch xlo = app.getObject();
    String oldText="1234";
    String newText="test";
    boolean visible=false;
    String bookMarkKey="LB_KJGG";
    try {
      //设置word不可见
      app.setProperty("Visible", new Variant(visible)); 字串7
      //log.info("设置word不可见成功!");
      System.out.println("设置word不可见成功!");
      Dispatch docs = app.getProperty("Documents").toDispatch();
      Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method
                                   ,new Object[]
                                   {inFile, new Variant(false), new Variant(true)}
                                   , new int[1]).toDispatch(); //打开word文件

字串8


      //在word2003的vba文档中application有UserName属性。
      String userName=app.getPropertyAsString("UserName");
      System.out.println("用户名:"+userName);
      Dispatch selection=app.getProperty("Selection").toDispatch();
      //得到一个组件
      System.out.println("Selection");
      Dispatch find = app.call(selection, "Find").toDispatch();

字串7

 

       //查找什么文本
       Dispatch.put(find, "Text", oldText);
       //替换文本
       Dispatch.call(find,"ClearFormatting");
       Dispatch.put(find, "Text", oldText);
       Dispatch.call(find, "Execute");
       Dispatch.put(selection, "Text", newText);
       // Dispatch.call(app, "SaveAs", inFile);
       System.out.println("replace");
      
       //把指定的值设置到指定的标签中去
       Dispatch activeDocument=app.getProperty("ActiveDocument").toDispatch();
       System.out.println("activedocument"); 字串1
       Dispatch bookMarks = app.call(activeDocument, "Bookmarks").toDispatch();
       System.out.println("bookmarks");
       boolean bookMarkExist1=Dispatch.call(bookMarks,"Exists",bookMarkKey).toBoolean();
       if(bookMarkExist1==true){
         System.out.println("exists bookmark!");
         Dispatch rangeItem = Dispatch.call(bookMarks, "Item",bookMarkKey).
                        toDispatch();
                    System.out.println("range item!");
                    Dispatch range = Dispatch.call(rangeItem, "Range").toDispatch(); 字串4
                    System.out.println("range !");
                    //取标签的值
                    String bookMarkValue=Dispatch.get(range,"Text").toString();
                    bookMarkValue="test";
                    if(bookMarkValue!=null){
                      Dispatch.put(range, "Text",
                             new Variant(bookMarkValue)); 字串4
                    }
        
       }
       else{
         System.out.println("not exists bookmark!");
       }
      //保存文件
      Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {tpFile, new Variant(0)}                      , new int[1]);
      //作为word格式保存到目标文件
      Variant f = new Variant(false);
      Dispatch.call(doc, "Close", f);
      flag = true;
    } 字串4
    catch (Exception e) {
      e.printStackTrace();
    }
    finally {
      app.invoke("Quit", new Variant[] {});
    }

字串9

 

关于java使用jacob调用word,ppt,excel等的转化为html的问题

使用jacob时,把dll放到window/system32下就成,不需要注册  1、如果出现下面的错误     com.jacob.com.ComFailException: A COM exc...

java+jacob实现word转pdf(通过调用模板文件)

背景:日常开发ERP系统,会有一些工单或者合同之类需要填写打印。我们就会将其word模板来通过系统自动化填写并转换为PDF格式(PDF文件打印可保证文件质量,是一种通用的格式。文件不易去修改,比较稳定...

java调用com组件操作word使用总结(jacob)

首先需要下载最新的jacob,不一定是帖子上说的1.14.1,接下来就是一下介绍了。缺点必须安装office 2008-4-27  Edited By DingDangXiaoMa 运用jac...

java调用com组件操作word使用总结(jacob)

ava调用com组件操作word使用总结(jacob) 简单描述     在此处输入简单摘要 特别声明:使用java-com技术可以完成任何VBA可以完成的office文档操作;  一、准备工...
  • dhdhxgx
  • dhdhxgx
  • 2015年05月07日 11:37
  • 898

java调用com组件操作word使用总结(jacob)

ava调用com组件操作word使用总结(jacob) 简单描述     在此处输入简单摘要 特别声明:使用java-com技术可以完成任何VBA可以完成的office文档操作;  一、准备工...

java调用com组件操作word使用总结(jacob)

import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; import com.jacob.com.Varia...

jacob-java调用word

  • 2015年09月09日 15:27
  • 874KB
  • 下载

java调用dll的几种方法(JNI,Jawin,Jacob)

java调用dll的几种方法(JNI,Jawin,Jacob)        前些天做单点登录,需要java调用dll,现在把成功经验与大家分享。    使用Java调用DLL动态链接库的...

java调用dll的几种方法(JNI,Jawin,Jacob)

java调用dll的几种方法(JNI,Jawin,Jacob)        前些天做单点登录,需要java调用dll,现在把成功经验与大家分享。    使用Java调用DLL动态链接...

(转)Jacob 导出word文档 资源无法正常释放 解决方法

操作word文档失败!com.jacob.com.ComFailException: Can't map name to dispid: Open    2009-03-17 15:11:41,81...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java中通过jacob调用word方法
举报原因:
原因补充:

(最多只允许输入30个字)