欢迎来到天天文库
浏览记录
ID:11370506
大小:66.50 KB
页数:8页
时间:2018-07-11
《如何使用jacob调用word的宏》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、如何使用jacob调用word的宏cleverpig发表于2005-09-1919:05:33作者:cleverpig 来源:matrix评论数:5点击数:3,066 投票总得分:15投票总人次:3关键字:jacob,word,macro,jav摘要:poi和jacob好像只能抽取doc文档的内容,而我现在需要在java中利用word.exe的功能对doc文档进行加工,怎么办?这是一个matrixuser:lingrings提出的问题。出于助人为乐的想法,自己便在google上查了一下,结果找到ja
2、cob。在下文中讲详细讲解如何使用jacob调用word文件中的宏。工具箱本站收藏美味书签投票评分发表评论复制链接如何使用jacob调用word的宏作者:cleverpig版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明原文地址:http://www.matrix.org.cn/resource/article/43/43784_jacob.html关键字:jacob,word,macro问题的提出如何用java调用word.exe的宏和其他功能?poi和jacob好像只能抽取
3、doc文档的内容,而我现在需要在java中利用word.exe的功能对doc文档进行加工,怎么办?这是一个matrixuser:lingrings提出的问题。出于助人为乐的想法,自己便在google上查了一下,结果找到jacob。jacob简介JACOBisaJAVA-COMBridgethatallowsyoutocallCOMAutomationcomponentsfromJava。这是jacob官方网站的原话,本人就不再多说了。jacob的实现有些像封装了com功能的jni调用的集合及承载com对象的容器
4、。jacob作者DanAdler使用了c++编写了一批程序库实现对com的引用/承载/调用,然后使用java的jni技术调用这些程序库,实现JAVA-COMBridge。关于作者如何封装的可以参考http://danadler.com/jacob/,其方法和类与微软的javasdk文档一致,有兴趣的朋友可以look一下。VB实现查看使用vb开发officeautomation的方法文档(http://www.microsoft.com/china/msdn/archives/technic/voices/off
5、ice05042000.asp),和访问word中的macro的文档(http://support.microsoft.com/kb/q185167/),来获取如何通过vb访问wordmacro的方法:例如marco定义如下:SubMyWordMacro(strPassedParamAsString) MsgBoxstrPassedParam EndSub而访问这个MyWordMacro宏的vb代码如下:SubAutomateWord_OpenDoc() DimwrdAppAs
6、Object DimwrdDocAsObject DimstrFileNameAsString SetwrdApp=CreateObject("Word.Application") OnErrorGoToDocError 'Replacethefollowingexamplestringvaluewiththepathand 'filenameofthetemplatecontainingyourmacro. strFileName="7、thandFilenameoftemplate>" 'Openthedocumentandsetavariableequaltoanewblank 'documentanditsunderlyingtemplate. SetwrdDoc=wrdApp.Documents.Add(strFileName) 'Runthemacro.(Replace"MyWordMacro"withthenameofyourmacro.) wrdDoc.MyWordMacro("T8、hisisatest.") DocError: IfErr.Number<>0ThenMsgboxErr.Description 'QuitthisinstanceofWord. wrdApp.Quit 'Clearvariablememory. SetwrdApp=Nothing SetwrdDoc=Nothing En
7、thandFilenameoftemplate>" 'Openthedocumentandsetavariableequaltoanewblank 'documentanditsunderlyingtemplate. SetwrdDoc=wrdApp.Documents.Add(strFileName) 'Runthemacro.(Replace"MyWordMacro"withthenameofyourmacro.) wrdDoc.MyWordMacro("T
8、hisisatest.") DocError: IfErr.Number<>0ThenMsgboxErr.Description 'QuitthisinstanceofWord. wrdApp.Quit 'Clearvariablememory. SetwrdApp=Nothing SetwrdDoc=Nothing En
此文档下载收益归作者所有