一、Jacob 介紹
Jacob 是 JAVA-COM Bridge的縮寫嗡靡,是一個中間件焚刺,能夠提供自動化訪問MS系統(tǒng)下COM組件和Win32 libraries的功能。
- MS系統(tǒng)提供的COM組件
COM組件 | 對象ID |
---|---|
MS Word | Word.Application |
MS Excel | Excel.Application |
MS Powerpoint | Powerpoint.Application |
MS IE | InternetExplore.Application |
二主籍、整體架構(gòu)
三习贫、設(shè)計模式
四、類圖
-
核心類
JacobObject:用于Java程序MS下的COM進(jìn)行通信千元,創(chuàng)建標(biāo)準(zhǔn)的API框架
ComThread:初始化COM組件線程苫昌,釋放線程,對線程進(jìn)行管理
Dispatch:調(diào)度處理類幸海,封裝了操作來從而操作Office祟身,并表示不同MS級別調(diào)度對象
ActiveXComponent : 創(chuàng)建COM組件
Variant : 與COM通訊的參數(shù)或者返回值
ROT :Running Object Table (ROT)屋厘,運(yùn)行對象表將每個線程映射到所有jacobobjects,在線程創(chuàng)建
-
核心方法
-
Dispatch : 可調(diào)用該自動化對象的屬性或方法月而,具體的屬性和方法要看參考文檔VBA API
- Dispatch.get(dispatch, String name)汗洒;獲取對象屬性
- Dispatch.put(dispatch, String name, Object value);設(shè)置對象屬性
- Dispatch.call(dispatch, String name, Object… args);調(diào)用對象方法
-
-
類圖
五父款、流程圖
六溢谤、優(yōu)缺點(diǎn)
-
優(yōu)點(diǎn)
- 相對于OpenOffice,轉(zhuǎn)換效果良好憨攒,
- 相對于POI世杀,可以操作Word/Powerpoint
- 使用簡單,參照VBA API即可使用Jacob操作COM組件
-
不足
- 轉(zhuǎn)換速度慢
- CPU占用率高(單CPU占用100%)
- 并發(fā)情況下WORD可能會死鎖(微軟知識庫)
- Word宏安全問題