package com.heyang;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
public class ModifyWordDocument {
public static void main(String[] args) throws Exception {
// 初始化com的线程,非常重要!!使用结束后要调用 realease方法
ComThread.InitSTA();
// 实例化ActiveX组件对象:对word进行操作
ActiveXComponent wrdCom = new ActiveXComponent("Word.Application");
// 获取Dispatch的Documents对象
Dispatch wrdDocs = wrdCom.getProperty("Documents").toDispatch();
// 设置打开的word应用程序是否可见
wrdCom.setProperty("Visible", new Variant(true));
// 打开一个已经存在的文档
Dispatch doc = Dispatch.call(wrdDocs, "Open", "c:\\abc.doc")
.toDispatch();
// 获得当前word文档文本
Dispatch docSelection = Dispatch.get(wrdCom, "Selection").toDispatch();
// 从selection所在位置开始查询
Dispatch find = Dispatch.call(docSelection, "Find").toDispatch();
// 设置要查找的内容
Dispatch.put(find, "Text", "测试");
// 向前查找
Dispatch.put(find, "Forward", "True");
// 设置格式
Dispatch.put(find, "Format", "True");
// 大小写匹配
Dispatch.put(find, "MatchCase", "True");
// 全字匹配
Dispatch.put(find, "MatchWholeWord", "True");
Dispatch.call(find, "Execute").getBoolean();
Dispatch.put(docSelection, "Text", "岳飞");
// 另存为
Dispatch.call(doc, "SaveAs", new Variant("C:\\abc.doc")); // 保存一个新文档
// 保存关闭
if (doc != null) {
Dispatch.call(doc, "Save");
Dispatch.call(doc, "Close", new Variant(true));
doc = null;
}
// 关闭word文件
wrdCom.invoke("Quit", new Variant[] {});
// 释放com线程。根据jacob的帮助文档,com的线程回收不由java的垃圾回收器处理
ComThread.Release();
}
}