Java编程实现调用com操作Word方法实例代码
实例代码如下:
importcom.jacob.activeX.ActiveXComponent; importcom.jacob.com.Dispatch; importcom.jacob.com.Variant; /** *jacob操作MSword类 *@author */ publicclassWordBean{ //word文档 privateDispatchdoc; //word运行程序对象 privateActiveXComponentword; //所有word文档集合 privateDispatchdocuments; //选定的范围或插入点 privateDispatchselection; privatebooleansaveOnExit=true; publicWordBean()throwsException{ if(word==null){ word=newActiveXComponent("Word.Application"); word.setProperty("Visible",newVariant(false));//不可见打开word word.setProperty("AutomationSecurity",newVariant(3));//禁用宏 } if(documents==null) documents=word.getProperty("Documents").toDispatch(); } /** *设置退出时参数 * *@paramsaveOnExit *booleantrue-退出时保存文件,false-退出时不保存文件 */ publicvoidsetSaveOnExit(booleansaveOnExit){ this.saveOnExit=saveOnExit; } /** *创建一个新的word文档 * */ publicvoidcreateNewDocument(){ doc=Dispatch.call(documents,"Add").toDispatch(); selection=Dispatch.get(word,"Selection").toDispatch(); } /** *打开一个已存在的文档 * *@paramdocPath */ publicvoidopenDocument(StringdocPath){ closeDocument(); doc=Dispatch.call(documents,"Open",docPath).toDispatch(); selection=Dispatch.get(word,"Selection").toDispatch(); } /** *打开一个保护文档, *@paramdocPath-文件全名 *@parampwd-密码 */ publicvoidopenDocumentOnlyRead(StringdocPath,Stringpwd)throwsException{ closeDocument(); //doc=Dispatch.invoke(documents,"Open",Dispatch.Method, //newObject[]{docPath,newVariant(false),newVariant(true),newVariant(true),pwd}, //newint[1]).toDispatch();//打开word文件 doc=Dispatch.callN(documents,"Open",newObject[]{docPath,newVariant(false), newVariant(true),newVariant(true),pwd,"",newVariant(false)}).toDispatch(); selection=Dispatch.get(word,"Selection").toDispatch(); } publicvoidopenDocument(StringdocPath,Stringpwd)throwsException{ closeDocument(); doc=Dispatch.callN(documents,"Open",newObject[]{docPath,newVariant(false), newVariant(false),newVariant(true),pwd}).toDispatch(); selection=Dispatch.get(word,"Selection").toDispatch(); } /** *把选定的内容或插入点向上移动 * *@parampos *移动的距离 */ publicvoidmoveUp(intpos){ if(selection==null) selection=Dispatch.get(word,"Selection").toDispatch(); for(inti=0;iparagraphsIndex&&0 //更新目录并自动保存办法
/**启动word进程*/ ActiveXComponentapp=newActiveXComponent("Word.Application"); app.setProperty("Visible",newVariant(false)); Dispatchdocs=app.getProperty("Documents").toDispatch(); /**打开word文档*/ Dispatchdoc=Dispatch.invoke(docs,"Open",Dispatch.Method,newObject[]{"D:/aaa/a.doc",newVariant(false), newVariant(false)},newint[1]).toDispatch(); DispatchactiveDocument=app.getProperty("ActiveDocument").toDispatch(); /**获取目录*/ DispatchtablesOfContents=Dispatch.get(activeDocument,"TablesOfContents").toDispatch(); /**获取第一个目录。若有多个目录,则传递对应的参数*/ VarianttablesOfContent=Dispatch.call(tablesOfContents,"Item",newVariant(1)); /**更新目录,有两个方法:Update更新域,UpdatePageNumbers只更新页码*/ Dispatchtoc=tablesOfContent.toDispatch(); toc.call(toc,"Update"); /**另存为*/ /**关闭word文档*/ Dispatch.call(doc,"Save"); Dispatch.call(doc,"Close",newVariant(-1)); /**退出word进程*/ app.invoke("Quit",newVariant[]{});总结:
本文关于Java编程实现调用com操作Word方法的介绍就到这里,希望对大家有所帮助。如果有什么问题可以留言,小编会及时回复大家的。