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 CreateWordDocument{
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, "Add").toDispatch();
// 获得当前word文档文本
Dispatch docSelection = Dispatch.get(wrdCom, "Selection").toDispatch();
// 输入文字
Dispatch.put(docSelection, "Text", "测试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();
}
}