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)