jacob基礎及其相關程式碼
阿新 • • 發佈:2018-12-06
/*
jacob 相關包 官網下載
jacob 配置環境 http://xiaoduan.blog.51cto.com/502137/136692/ 呼叫其他控制元件需要到登錄檔註冊 regsvr32 + 路徑名+.dll檔案( regsvr32 windows/system32/...dll)
jacob 詳細解說 http://www.ltesting.net/ceshi/ruanjianceshikaifajishu/rjcskfyy/java/2007/0622/60996.html
jacob new Variant() 關於文件的儲存格式 http://blog.sina.com.cn/s/blog_9276155f01017m5g.html
*/
package com.jacob.test;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
public class MSWordManager {
// word 文件
private Dispatch doc;
// word 執行程式物件
private ActiveXComponent word;
private Dispatch documents;
// 選定的範圍或插入點
private Dispatch selection;
private boolean saveOnExit = true;
public MSWordManager(boolean visible) {
if (word == null) {
// 初始化
word = new ActiveXComponent(" Word.Application"); //已經安裝word
word.setProperty("Visible", new Variant(visible));
}
if (documents == null)
documents = word.getProperty("Documents").toDispatch();
}
public void setSaveOnExit(boolean saveOnExit) {
this.saveOnExit = saveOnExit;
}
public void createNewDocument() {
doc = Dispatch.call(documents, "Add").toDispatch();
selection = Dispatch.get(word, "Selection").toDispatch();
}
public void insertText(String newText) {
Dispatch.put(selection, "Text", newText);
}
public void save(String savePath) {
Dispatch.call(
(Dispatch) Dispatch.call(word, "WordBasic").getDispatch(),
"FileSaveAs", savePath);
}
public void closeDocument() {
if (doc != null) {
Dispatch.call(doc, "Save");
Dispatch.call(doc, "Close", new Variant(saveOnExit));
doc = null;
}
}
public void close() {
closeDocument();
if (word != null) {
Dispatch.call(word, "Quit");
word = null;
}
selection = null;
documents = null;
}
public static void main(String[] args) {
MSWordManager ms=new MSWordManager(true);
ms.createNewDocument();
ms.insertText("hello song");
ms.save("d:\\1.doc");
ms.close();
ms.closeDocument();
}
}