1. 程式人生 > >jacob基礎及其相關程式碼

jacob基礎及其相關程式碼

/*

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;
 
// word文件物件
private Dispatch documents;
 
// 選定的範圍或插入點
private Dispatch selection;
 
 
private boolean saveOnExit = true;
 
    
 
public  MSWordManager(boolean visible) {
if (word == null) { 
       //    初始化
       //    建立排程物件基於word.Application
             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();

   
  
}