輕鬆架起Java連線COM物件的橋樑 (轉)

gugu99發表於2008-04-26
輕鬆架起Java連線COM物件的橋樑 (轉)[@more@]


 問題是在CSDN上一網友提出的將 m$ 轉換為 的問題(/expert/topic/1091/1091620.xml)or(">)or(). 現將一種簡便的方法詳細闡述於下:
1。下在Java-COM連線橋JACOB(),需要jacob.jar和jacob.dll兩個就可以了。並把jacob.dll所在目錄設到PATH。
2。程式(Exam_2.java)如下:
import java.io.File;
import com.jacob.com.*;
import com.jacob..*;

public class Exam_2 {
 
 public static void main(String[] args) {
 
 ActiveXComponent app = new ActiveXComponent("Word.Application");//啟動word
 String inFile = "H:Majix-1_2_2_fullsamplemy.doc";//要轉換的word檔案
 String tpFile = "H:Majix-1_2_2_fullsamplemy.htm";//臨時檔案
 String otFile = "H:Majix-1_2_2_fullsamplemy.xml";//目標檔案
 boolean flag = false;
 try {
 app.setProperty("Visible", new Variant(false));//設定word不可見
  docs = app.getProperty("Documents").toDispatch();
 Object doc = Dispatch.invoke(docs,"Open", Dispatch.Method, new Object[]{inFile,new Variant(false), new Variant(true)}, new int[1]).toDispatch();//開啟word檔案
 Dispatch.invoke(doc,"SaveAs", Dispatch.Method, new Object[]{tpFile,new Variant(8)}, new int[1]);//作為html格式儲存到臨時檔案
 Variant f = new Variant(false);
 Dispatch.call(doc, "Close", f);
 flag = true;
 } catch (Exception e) {
 e.printStackTrace();
 } finally {
 app.invoke("Quit", new Variant[] {});
 }
 
 if ( flag ) {
 app = new ActiveXComponent(".Application");//啟動excel
 try {
 app.setProperty("Visible", new Variant(false));//設定excel不可見
 Object workbooks = app.getProperty("Workbooks").toDispatch();
 Object workbook = Dispatch.invoke(workbooks,"Open",Dispatch.Method,new Object[]{tpFile,new Variant(false), new Variant(true)}, new int[1]).toDispatch();//開啟臨時檔案
 Dispatch.invoke(workbook,"SaveAs", Dispatch.Method, new Object[]{otFile,new Variant(46)}, new int[1]);//以xml格式儲存到目標檔案
 Variant f = new Variant(false);
 Dispatch.call(workbook, "Close", f);
 } catch (Exception e) {
 e.printStackTrace();
 } finally {
 app.invoke("Quit", new Variant[] {});
 try {
 File file = new File(tpFile);
 file.delete();
 } catch (Exception e) {
 }
 }
 }
 }
}
3。編譯(確保jacob.dll在PATH中)
H:mytest>javac -classpath jacob.jar Exam_2.java
H:mytest>java -cp jacob.jar;. Exam_2
 以上是我為解決將 m$ word 轉換為 xml 的java程式問題的通用實現的通用方法,其他COM也可以一樣的解決。如有問題請E:zlyperson@163.net


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1003023/,如需轉載,請註明出處,否則將追究法律責任。

相關文章