溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java如何連接COM對象

發(fā)布時間:2021-12-09 13:54:58 來源:億速云 閱讀:163 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關Java如何連接COM對象,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。


 問題是在CSDN上一網(wǎng)友提出的將 m$ word 轉換為 XML 的Java程序問題(.NET/expert/topic/1091/1091620.xml)or(http://search.csdn.net/expert/topic/54/5406/2002/10/12/1091620.htm">http://www.csdn.net/expert/topic/1091/1091620.xml)or(http://search.csdn.net/expert/topic/54/5406/2002/10/12/1091620.htm). 現(xiàn)將一種簡便的方法詳細闡述于下:
1。下在Java-COM連接橋JACOB(http://danadler.com/jacob/),需要jacob.jar和jacob.dll兩個文件就可以了。并把jacob.dll所在目錄設到PATH。
2。調用程序(Exam_2.java)如下:
import java.io.File;
import com.jacob.com.*;
import com.jacob.ActiveX.*;

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不可見
 object 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("excel.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。編譯執(zhí)行(確保jacob.dll在PATH中)
H:mytest>javac -classpath jacob.jar Exam_2.java
H:mytest>java -cp jacob.jar;. Exam_2

關于“Java如何連接COM對象”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI