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)
分享到:
相关推荐
**Jacob API文档及使用方法** Jacob(Java COM Bridge)是一个开源Java库,它允许Java程序与COM组件进行交互。在Windows环境下,COM组件是广泛使用的,例如与Office应用程序(如Excel、Word)进行自动化操作。Jacob...
通过以上步骤,你已经掌握了使用Jacob在Java中操作Word的基本方法。不过,值得注意的是,Jacob的性能可能不如专门的文档处理库(如Apache POI),而且与特定的操作系统和Office版本有关。因此,在选择技术栈时,应...
**使用Jacob的基本步骤** 1. 初始化Jacob:在使用Jacob之前,需要启动COM线程。这是通过调用`ComThread.InitMultiThreading()`完成的。 2. 创建ActiveXComponent对象:这是与COM组件交互的基础。例如,如果要操作...
以上就是使用Jacob 1.5操作Word文档,特别是创建目录的基本步骤。在实际开发中,你可能需要根据具体需求进行更复杂的操作,例如插入图片、表格、调整格式等。Jacob提供的API非常丰富,可以满足大多数与Word交互的...
具体使用方法通常涉及以下步骤: 1. 添加Jacob的jar包到项目:将下载的Jacob版本对应的jar文件添加到项目的类路径中,确保编译和运行时都能找到。 2. 引入Jacob库:在Java代码中通过`import`语句导入Jacob的相关类...
**Jacob使用说明终极吐血版** ...通过以上的介绍,你应该对Jacob有了基本的了解,但要深入使用,还需要参考官方文档和实际项目中的应用。在实际开发中,一定要注意错误处理和资源管理,以确保程序的稳定性和性能。
在使用 Jacob 库之前,需要了解一些基本概念。Jacob 库使用了 COM 组件来访问 Word 应用程序。COM 组件是一个软件组件模型,允许不同的应用程序之间进行通信和交互。在 Jacob 库中,我们使用 ActiveXComponent 对象...
本文将详细介绍JACOB的基本概念、功能、环境需求以及实际操作步骤。 ### 1. JACOB产品介绍 1.1 **什么是JACOB** JACOB是一个开源项目,始于1999年,它的核心功能是为Java开发者提供一个桥梁,以便他们能够利用COM...
**使用Jacob的基本步骤** 1. **添加依赖**:将jacob.jar文件添加到项目类路径中,同时需要在系统路径下包含jacob.dll,因为Jacob是基于本地库的。 2. **初始化COM**:使用` JacobAutoProxy.init()`方法初始化Jacob...
2. **Jacob库的使用**:首先需要将Jacob的jar文件添加到项目的类路径中,然后通过`com.jacob.COMThread.init() `方法初始化Jacob,以便在多线程环境中使用COM组件。 3. **创建并使用COM对象**:在Windows中,语音...
以下是一个基本示例,展示如何使用Jacob读取Word文档中的文本: ```java import com.jacob.activeX.ActiveXComponent; import com.jacob.com.ComThread; import com.jacob.com.Dispatch; public class WordReader ...
里面数据类型的转换的方法 Variant类本身是JACOB的最最基本的数据类 他可以被转换成任何的类 如: 使用toDispatch();可以将Variant转化成Dispatch对象 ) com jacob com中还有其他的一些类不是建立在...
本文将详细解析"jacob1.18"和"jacob1.19"这两个版本的特性、使用方法以及它们在Windows环境下的应用。 首先,我们来看"jacob1.18"版本。此版本是Jacob的一个较早发行版,它包含了一个名为"jacob.jar"的Java类库,这...
Jacob是Java和COM之间的一个桥梁库...以上是对"Jacob1.9.zip"压缩包及其内容的详细解析,包括Jacob库的基本概念、使用方法以及可能的应用场景。如果你打算在Java项目中使用COM组件,理解并熟练掌握Jacob是非常有用的。
以下是如何使用Jacob进行此类操作的一个基本步骤: 1. **引入Jacob库**:首先,你需要将`jacob.jar`添加到项目的类路径中。如果是Java项目,这可以通过在`build.gradle`或`pom.xml`文件中添加依赖来实现。同时,...
里面数据类型的转换的方法 Variant类本身是JACOB的最最基本的数据类 他可以被转换成任何的类 如: 使用toDispatch();可以将Variant转化成Dispatch对象 ) com jacob com中还有其他的一些类不是建立在...
3. **编写代码**: 使用JACOB时,首先需要加载COM组件,然后通过Java对象来调用OCX控件的方法。例如,你可以使用`ActiveXComponent`类创建一个OCX实例,然后调用其方法,就像操作Java对象一样。 ```java import ...
使用Jacob进行TTS操作的基本步骤如下: 1. 引入`jacob-1.20.jar`到项目中,并配置本机库路径(如在`java.library.path`中添加DLL文件的位置)。 2. 创建`ActiveXComponent`对象,实例化SAPI的`ISpVoice`接口。 3. ...
通常,这样的博客文章会详细介绍如何使用Jacob,包括初始化、方法调用、错误处理等。建议读者访问该链接以获取更深入的理解。 **标签:“源码 工具”** “源码”标签表明我们可能讨论的是Jacob库的底层实现,以及...
2. **Jacob库的基本使用**: - Jacob的核心类`com.jacob.com.ComThread`负责初始化COM线程,`com.jacob.activeX.ActiveXComponent`则用于创建和操作COM对象。 - 通过`ActiveXComponent`的`invoke`方法,可以调用...