Jacob基本使用方法

package comtest;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

public class ComTest {

public static void main(String[] args) {
ActiveXComponent axc = new ActiveXComponent("Excel.Application");
System.out.println(axc.getProperty("Version"));
Dispatch wb = axc.getProperty("WorkBooks").toDispatch();
String fn = "F:\\vba\\vars.xls";
Dispatch w = Dispatch.invoke(wb, "Open", Dispatch.Method, new Object[]{fn, new Variant(true),
new Variant(false)}, new int[1]).toDispatch();

// Dispatch vbe = axc.getProperty("VBE").toDispatch();
// Dispatch cbs = Dispatch.call(vbe, "CommandBars").toDispatch();
// int count = Dispatch.call(cbs, "Count").getInt();
// System.out.println("vbe count:"+count);
// Dispatch cb = Dispatch.call(cbs, "Item", new Integer(1)).toDispatch();
// Dispatch cts = Dispatch.call(cb, "Controls").toDispatch();
// int menucount = Dispatch.call(cts, "Count").getInt();
// System.out.println("menucount:"+menucount);
// Dispatch ct = Dispatch.call(cts, "Item", new Integer(8)).toDispatch();
// Dispatch xcts = Dispatch.call(ct, "Controls").toDispatch();
// Dispatch xct = Dispatch.call(xcts, "Item", new Integer(5)).toDispatch();
// Dispatch.call(xct, "Execute");
//
// axc.invoke("SendKeys", new Variant(""), new Variant(false));

Dispatch.call(w, "Close", new Variant(false));


}

}



触发事件的
ActiveXComponent axc = new ActiveXComponent("Excel.Application");
System.out.println(axc.getProperty("Version"));
Dispatch wb = axc.getProperty("WorkBooks").toDispatch();
String fn = "F:\\vba\\jiami.xls";
Dispatch w = Dispatch.invoke(wb, "Open", Dispatch.Method, new Object[]{fn, new Variant(true),
new Variant(false)}, new int[1]).toDispatch();

Dispatch vbe = axc.getProperty("VBE").toDispatch();

Dispatch cbs = Dispatch.call(vbe, "CommandBars").toDispatch();
// int count = Dispatch.call(cbs, "Count").getInt();
// System.out.println("vbe count:"+count);
Dispatch cb = Dispatch.call(cbs, "Item", new Integer(1)).toDispatch();
Dispatch cts = Dispatch.call(cb, "Controls").toDispatch();
int menucount = Dispatch.call(cts, "Count").getInt();
System.out.println("菜单个数:"+menucount);
Dispatch ct = Dispatch.call(cts, "Item", new Integer(8)).toDispatch();
// String menuName = Dispatch.call(ct, "Name").getString();
// System.out.println("菜单名字:"+menuName);
Dispatch cm = Dispatch.call(ct, "Controls").toDispatch();
int gccount = Dispatch.call(cm, "Count").getInt();
System.out.println("选项个数:"+gccount);
Dispatch opt = Dispatch.call(cm, "Item", new Integer(5)).toDispatch();
// String optName = Dispatch.call(opt, "Caption").getString(); //TooltipText
// System.out.println("选项名字:"+optName);
Dispatch.call(opt, "Execute");
Dispatch.call(axc, "SendKeys", "123456", new Variant(true)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值