jacob使用入门.doc_第1页
jacob使用入门.doc_第2页
jacob使用入门.doc_第3页
jacob使用入门.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

首先,大家先要了解一下jacob ,官方的解释是Java COM Bridge,即java和 com组件间的桥梁(进一步了解com/dcom: /com/) com一般表现为dll或exe等二进制文件,像我们呆会会用到的jacob.dll文件 这里说说为什么我们用java去操纵office(如:word)要使用com,而不直接 使用java去做? 首先,我们清楚office是建立在windows平台之上的,本身是一个软件,除了 他自己提供的宏似乎没有什么能对他进行直接的操作;在windows平台上为了 解决像这样的不同应用软件,通信缺乏通用api问题,推出了com的解决方案; 我们使用dll中的一组或多组相关的函数存取组件数据,总的合称为接口 具体到每个细节的实现称为方法;如果我们要调用接口里的方法,唯一的途径就是 调用指向接口的指针; 所以总的来说使用就是dll/exe完成api的转换; 如果你听不懂,则称为废话(不懂没关系,会用就好,用久自然懂了)。 大家先下载这里 jacob_1.9.zip 里面的jacob.jar是我们要用的包 jacob.dll就是我前面说的com组件 把包里的jacob.dll放到c:/windows/system32下 讲解麻烦,画个图大家看 好 值得注意的是,不同的版本的系统使用不同的dll文件 所以如果你编译成功,但运行失败一般是dll文件问题 遇到这种情况,可以到 /jacob-project/jacob_1.9.zip?modtime=1109437002&big_mirror=0 下载其他的版本的 dll 文件。 先给大家个word的测试代码(经过更改该代码在我的机器上运行正常) 以后有会找时间,推出其他的office代码 import com.jacob.activeX.ActiveXComponent; import .ComException; import .Dispatch; import .Variant; public class WordDocumentProperties / 声明一个word对象 private ActiveXComponent objWord; / 声明四个word组件 private Dispatch custDocprops; private Dispatch builtInDocProps; private Dispatch document; private Dispatch wordObject; public WordDocumentProperties() /* */ /* * 打开word文挡 */ public void open(String filename) / 创建一个word对象 objWord = new ActiveXComponent( Word.Application ); / 为wordobject组件附值 wordObject = (Dispatch)(objWord.getObject(); / 改了这里 / 生成一个只读方式的word文挡组件 Dispatch.put(wordObject, Visible , new Variant( false ); / 获取文挡属性 Dispatch documents = objWord.getProperty( Documents ).toDispatch(); / 打开激活文挡 document = Dispatch.call(documents, Open , filename).toDispatch(); public void selectCustomDocumentProperitiesMode() custDocprops = Dispatch.get(document, CustomDocumentProperties ) .toDispatch(); public void selectBuiltinPropertiesMode() builtInDocProps = Dispatch.get(document, BuiltInDocumentProperties ) .toDispatch(); /* */ /* * 关闭文挡 */ public void close() Dispatch.call(document, Close ); public String getCustomProperty(String cusPropName) try cusPropName = Dispatch.call(Dispatch) custDocprops, Item , cusPropName).toString(); catch (ComException e) cusPropName = null ; return cusPropName; public String getBuiltInProperty(String builtInPropName) try builtInPropName = Dispatch.call(Dispatch) builtInDocProps, Item , builtInPropName).toString(); catch (ComException e) builtInPropName = null ; return builtInPropName; public static void main(String args) try WordDocumentProperties jacTest = new WordDocumentProperties(); jacTest.open( s.doc ); jacTest.selectCustomDocumentProperitiesMode(); jacTest.selectBuiltinPropertiesMode(); String custValue = jacTest.getCustomProperty( Information Source ); String builtInValue = jacTest.getBuiltInProperty( Author ); jacTest.close(); System.out.println( Document Val One: + custValue); System.out.println( Document Autho

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论