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)); //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文件 //在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();
//查找什么文本 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"); 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)); } } 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; } catch (exception e) { e.printstacktrace(); } finally { app.invoke("quit", new variant[] {}); }
