資源描述:
《如何使用jacob調(diào)用word的宏》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、如何使用jacob調(diào)用word的宏cleverpig發(fā)表于2005-09-1919:05:33作者:cleverpig????來(lái)源:matrix評(píng)論數(shù):5點(diǎn)擊數(shù):3,066????投票總得分:15投票總?cè)舜?3關(guān)鍵字:jacob,word,macro,jav摘要:poi和jacob好像只能抽取doc文檔的內(nèi)容,而我現(xiàn)在需要在java中利用word.exe的功能對(duì)doc文檔進(jìn)行加工,怎么辦?這是一個(gè)matrixuser:lingrings提出的問(wèn)題。出于助人為樂(lè)的想法,自己便在google上查了一下,結(jié)果找到j(luò)acob。在下文中講詳細(xì)講解如何使用jacob
2、調(diào)用word文件中的宏。工具箱本站收藏美味書(shū)簽投票評(píng)分發(fā)表評(píng)論復(fù)制鏈接如何使用jacob調(diào)用word的宏作者:cleverpig版權(quán)聲明:可以任意轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明文章原始出處和作者信息及本聲明原文地址:http://www.matrix.org.cn/resource/article/43/43784_jacob.html關(guān)鍵字:jacob,word,macro問(wèn)題的提出如何用java調(diào)用word.exe的宏和其他功能?poi和jacob好像只能抽取doc文檔的內(nèi)容,而我現(xiàn)在需要在java中利用word.exe的功能對(duì)doc文檔進(jìn)行加工
3、,怎么辦?這是一個(gè)matrixuser:lingrings提出的問(wèn)題。出于助人為樂(lè)的想法,自己便在google上查了一下,結(jié)果找到j(luò)acob。jacob簡(jiǎn)介JACOBisaJAVA-COMBridgethatallowsyoutocallCOMAutomationcomponentsfromJava。這是jacob官方網(wǎng)站的原話,本人就不再多說(shuō)了。jacob的實(shí)現(xiàn)有些像封裝了com功能的jni調(diào)用的集合及承載com對(duì)象的容器。jacob作者DanAdler使用了c++編寫(xiě)了一批程序庫(kù)實(shí)現(xiàn)對(duì)com的引用/承載/調(diào)用,然后使用java的jni技術(shù)調(diào)用這些程序
4、庫(kù),實(shí)現(xiàn)JAVA-COMBridge。關(guān)于作者如何封裝的可以參考http://danadler.com/jacob/,其方法和類與微軟的javasdk文檔一致,有興趣的朋友可以look一下。VB實(shí)現(xiàn)查看使用vb開(kāi)發(fā)officeautomation的方法文檔(http://www.microsoft.com/china/msdn/archives/technic/voices/office05042000.asp),和訪問(wèn)word中的macro的文檔(http://support.microsoft.com/kb/q185167/),來(lái)獲取如何通過(guò)vb訪問(wèn)
5、wordmacro的方法:例如marco定義如下:SubMyWordMacro(strPassedParamAsString)????????MsgBoxstrPassedParam??????EndSub而訪問(wèn)這個(gè)MyWordMacro宏的vb代碼如下:SubAutomateWord_OpenDoc()??????DimwrdAppAsObject??????DimwrdDocAsObject??????DimstrFileNameAsString??????SetwrdApp=CreateObject("Word.Application")?????
6、?OnErrorGoToDocError??????'Replacethefollowingexamplestringvaluewiththepathand??????'filenameofthetemplatecontainingyourmacro.??????strFileName=""??????'Openthedocumentandsetavariableequaltoanewblank??????'documentanditsunderlyingtemplate.??????SetwrdDo
7、c=wrdApp.Documents.Add(strFileName)??????'Runthemacro.(Replace"MyWordMacro"withthenameofyourmacro.)??????wrdDoc.MyWordMacro("Thisisatest.")??DocError:??????IfErr.Number<>0ThenMsgboxErr.Description??????'QuitthisinstanceofWord.??????wrdApp.Quit??????'Clearvariablememory.??????Setw
8、rdApp=Nothing??????SetwrdDoc=Nothing??En