关于jacob1.10的使用体会

由于工作的原因开始使用jacob操作OFFICE对象,这几天总算摸出了一些脉络,记录下来。

jacob目前的版本是1.10。如果要在jdk1.4.2以上使用jacob时务必使用此版本。

在打开OFFICE文档(包括模板)前,应先检查文件是否存在,因为COM桥只能抛出Invoke异常不会抛出FileNotFoundException异常,有时会把自己搞糊涂。


在关闭WordApp对象时,如果不希望出现类似提示保存Normal.dot的现象,应该使用如下方法:

<code>Dispatch.call((Dispatch)wordApp,"Quit", new Variant(0));
ComThread.Release();
wordApp = null;</code>

Quit方法的第1个参数0表示不保存更改,当然在此之前应该主动调用SaveAs方法保存文档。这样就不会出现讨厌的“Normal.dot正在被使用”的问题了。


call和invoke的区别
这个一开始捆饶了我很久,后来逐渐体会出了他们间的区别,我猜想call是invoke的特例,call是对Dispatch.Method一类成员的invoke。后来在http://www.koders.com/java/fid629A5A200CEB64EBA85ECB893DC646E60A1A31B3.aspx看到了IDispatch.java的代码,其中的
public Variant call(Dispatch dispatch, String name, Variant[] argv, int[] argc)
{
    return (Dispatch.invoke(dispatch, name, Dispatch.Method, argv, argc));
}
间接证明了我的猜想。另外还有一点是call方法使用参数列表而invoke方法使用参数数组传递参数。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值