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方法的介绍就到这里,希望对大家有所帮助。如果有什么问题可以留言,小编会及时回复大家的。