java 操作word

来源:互联网 发布:二维旋转矩阵公式 编辑:程序博客网 时间:2024/04/28 03:35

   最近看了java 操作word 的例子,网上的搜到的东西实在太少了,帮助文档还是vb的,不得已只能自己琢磨了 ,前两天刚实现定位word标签的功能!

    起初是配置问题,dll文件和Jar文件好像不合拍,要不就是和系统不合拍,反正老是处一个异常怎么都无法运行,换了dll文件能通过了。

 

   开始做例子,看的是java 操作jacob的例子,而我用了一个封装的jar文件(office_wrapper.jar),那个例子就显得繁琐、复杂了,封装的jar文件在使用起来就方便多了(这是才发现的,但是对java的认识还是太浅)。

  不多说看代码:(以下是例子代码)

   //把指定的值设置到指定的标签中去
     Dispatch activeDocument=app.getProperty("ActiveDocument").toDispatch();
     System.out.println("activedocument");
     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();
     System.out.println("range !");
     //取标签的值
     String bookMarkValue=Dispatch.get(range,"Text").toString();
     bookMarkValue="test";
     if(bookMarkValue!=null){
     Dispatch.put(range, "Text",
     new Variant(bookMarkValue));
     }

当使用老师给的那个封装jar包后就变得:

           Bookmarks bookMarks =app.getActiveDocument().getBookmarks();
        
            Boolean b = bookMarks.exists(bookMarkKey);
     //     java.lang.System.out.println(b);
      //      int num2 = bookMarks.getCount();
       //     java.lang.System.out.println(num2);

if (b){
         bookMarks.item(new Variant(bookMarkKey)).getRange().setText("123");

            }
         方便多了。

 

看出来,在使用jar包后所有例子中dispatch.call方法中的参数都被成了调用关系,

都成了xxx.getxxx(); dispatch.put的方法貌似成了xx.setxx();

  小弟的一点心得,希望对大家有用,java操作word这方面的确资料太少了,不知道为什么,希望大家还有什么其他的可以共享的可以给小弟说说,小弟期待大家的共享!