JACOB 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
JACOB 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
JACOB 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 LGPL
开发语言 Java 查看源码 »
操作系统 Windows
软件类型 开源软件
开源组织
地区 不详
投 递 者 红薯
适用人群 未知
收录时间 2010-01-19

软件简介

JACOB一个Java-COM中间件.通过这个组件你可以在Java应用程序中调用COM组件和Win32程序库。

示例代码:

import com.ms.com.*;
import com.ms.activeX.*;

public class DispatchTest
{
  public static void main(String[] args)
  {
    ActiveXComponent xl = new ActiveXComponent("Excel.Application");
    Object xlo = xl.getObject();
    try {
      System.out.println("version="+xl.getProperty("Version"));
      System.out.println("version="+Dispatch.get(xlo, "Version"));
      xl.setProperty("Visible", new Variant(true));
      Object workbooks = xl.getProperty("Workbooks").toDispatch();
      Object workbook = Dispatch.get(workbooks,"Add").toDispatch();
      Object sheet = Dispatch.get(workbook,"ActiveSheet").toDispatch();
      Object a1 = Dispatch.invoke(sheet, "Range", Dispatch.Get,
                                  new Object[] {"A1"},
                                  new int[1]).toDispatch();
      Object a2 = Dispatch.invoke(sheet, "Range", Dispatch.Get,
                                  new Object[] {"A2"},
                                  new int[1]).toDispatch();
      Dispatch.put(a1, "Value", "123.456");
      Dispatch.put(a2, "Formula", "=A1*2");
      System.out.println("a1 from excel:"+Dispatch.get(a1, "Value"));
      System.out.println("a2 from excel:"+Dispatch.get(a2, "Value"));
      Variant f = new Variant(false);
      Dispatch.call(workbook, "Close", f);
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      xl.invoke("Quit", new Variant[] {});
    }
  }
}
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (10)

加载中
怎么支持 IDispatch 参数呢
01/06 10:26
回复
举报
jacob 支持调用远程服务器COM吗 例.NET public static Type GetTypeFromProgID (string progID, string server, bool throwOnError);
2021/04/12 09:44
回复
举报
你好,jacob支持多线程调动吗
2020/08/03 11:03
回复
举报
JACOB支持pdf转excel吗?
2020/06/16 09:14
回复
举报
支持
2020/06/24 16:42
回复
举报
mark一下 JACOB
2013/02/19 10:46
回复
举报
配上SpeechSDK,好玩 JACOB
2014/02/17 15:28
回复
举报
利用jacob怎么生成enumeration变量(office的vba类型) JACOB
2014/03/27 18:49
回复
举报
JComJACOB 那个比较稳定?
2014/07/30 16:16
回复
举报
JACOB 不支持 named arguments,真麻烦
2014/10/22 18:00
回复
举报
更多评论
暂无内容
发表于服务端专区
2016/09/06 23:30

Jacob使用小结

1. 背景 最近参与一个项目,其中需要通过网页来操控IP电话。本来这是一个非常成熟的呼叫中心产品,集成到系统中即可。然客户要求,收消息的途径不仅包括电话,还包括其他传感器,要把传感器和电话统一处理。这个“统一处理”把集成对接变成了开发对接。因为,电话本身是有自己的呼叫排队和坐席派发机制的。如果要统一处理,则原来的排队机制就需要被修改。与厂商沟通之后,厂商提供dll和ocx库,我们来开发。要知道哥们儿是搞Jav...

0
0
发表了博客
2018/10/18 12:05

Jacob用法收集

介绍 Jacob 是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。 安装和配置 Jacob是一个开源软件,它的官方站点是:http://danadler.com/jacob/ 我的系统是64位,把jacob-1.18-M2-x64.dll复制到Windows\System32文件夹下,再 IDE中引用jacob.jar就可以使用了 读写Word简单示例 必须先在对应的路径下建立fileIn.doc,可以事先...

0
1
发表了博客
2014/04/01 21:13

Jacob如何使用

现状:项目使用Jacob组件对word加水印,xdocreport进行数据的加载和pdf的转换。 问题:目前由于word数量越来越大,而大部分word都有几页纸是相同的,所以每次修改都需要遍历大部分的word,这种设计显然不利于项目的维护。 解决思路:考虑将相同的几页纸抽取出来,在转PDF的时候,将这些内容插入到指定的位置即可,以后要修改这几页纸的内容,则只需要修改一次即可。 技术难点:如何将相同的几页纸插入到指定的位置? 采用技术:...

0
8
发表了博客
2020/08/20 09:02

Jacob无法使用解决办法

我用的是Jacob-1.14.1.jar,操作系统是64位,运行打开本地Excel文件时报错, java.lang.NoClassDefFoundError: Could not initialize class com.jacob.com.ComThread 经排查,需要操作系如下: 1、把下载的JAR里面的jacob.dll拷贝至%JAVA_HOME%\jre\bin目录所致。 2、C:\Windows\System32目录页要拷贝一份jacob.dll 重启服务,OK。 当不知道版本的时候,可以通过jar下面的\META-INF\JacobVersion.properties #Sat, 03 Aug 2013...

0
0
发表了博客
2014/06/13 13:05

jacob更新word目录

jacob更新目录方法 /**启动word进程*/ ActiveXComponent app = new ActiveXComponent("Word.Application"); app.setProperty("Visible", new Variant(false));     Dispatch docs = app.getProperty("Documents").toDispatch();     /**打开word文档*/ Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method, new Object[] { docfile, new Variant(false),               ...

0
2
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于开发技能专区
2021/06/24 17:03

如何再不安装Office办公软件的,只安装组件包的情况下,使用Jacob使用ActiveXComponent调用"Word.Application"组件?

各位大佬好,请较大家一个问题,具体如下: 我们项目因为需要操纵Word转PDF、更新Word的目录,使用了Jacob.dll 调用 Word.Application来实现此功能,但是再客户方部署,对面的基础设施负责人提出,服务器不能安装客户端软件,只能安装组件包或者更新包, 客户机器:Windows Server 2016 ,请问微软有对应的更新组件包吗?或者可以通过某种方式,把已经安装了office的一些文件拷过去,达到目的?...

1
0
发表了问答
2012/12/30 16:02

com.jacob.com.ComFailException: Can't get object clsid from progid

@梅公子 你好,想跟你请教个问题: 之前看您遇到过这个问题,请问您是怎么解决的 com.jacob.com.ComFailException: Can't get object clsid from progid at com.jacob.com.Dispatch.createInstanceNative(Native Method) at com.jacob.com.Dispatch.<init>(Dispatch.java:99) at com.jacob.activeX.ActiveXComponent.<init>(ActiveXComponent.java:58) at com.nflj.util.DOC2PDF$Wps.convert(DOC2PDF.java:28) at com.nflj.uti...

7
0
发表了问答
2019/01/02 16:24

com.jacob.com.ComFailException: Invoke of: Speak 平常测试没有问题,但是通过项目生成文件再将文件内容转成语音时报这个错

公司的一个监控项目,实现监控信息语音告警。 过程是这样的,通过项目产生监控信息文件。通过传输模块传输到PC上的某个文件夹。 我用jacob写了一个简单的语音文本转语音程序,打成jar包在pc上运行,隔一段时间去扫描文件夹,将文件夹下面的文件内容转换成语音播放出来。 对于某些报警来说,不会报错,但是对另外一些报警就会把报错com.jacob.com.ComFailException: Invoke of: Speak 实在找不到是哪的问题,希望大神能帮我解答,...

1
0
2020/01/08 11:24

求教大佬 html转word

求教!!!怎么html转word??? 大佬们有什么好办法把这些试题导出成word?主要是需要保持样式的正确,我之前用itext导出,但是会出现样式混乱,后面直接把试题弄成一个PDF 但是用户就只想要word。后面发现docx4j好像可以,但是我导出后发现还是会有大批样式不正确的情况。求大佬们支招

16
2
发表了问答
2020/07/28 13:40

Java使用Jacob调用大漠插件绑定窗体报错

代码报错在调用BindWindows这行,麻烦大佬们帮忙看看! idea控制台打印内容 7.1904 state1 1 # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x17249517, pid=3052, tid=0x000021b8 # # JRE version: Java(TM) SE Runtime Environment (8.0_202-b08) (build 1.8.0_202-b08) # Java VM: Java HotSpot(TM) Client VM (25.202-b08 mixed mode windows-...

3
0
发表了问答
2015/05/28 22:25

java使用jacob能否实现给pdf加密??如果不能,还有什么其它推荐方法??

开发语言:java 开发功能:使用jacob实现将系统数据填入rtf/word格式模板中,并转换为pdf输出 开发进度:已用dispatch实现上述功能,但在转换为pdf过程中,不知道如何为pdf加密。 请教大牛,dispatch能否实现为pdf加密的功能?如果可以,希望指点一下,如果不可以,请指条明路,急切求,谢谢。

4
0
发表了问答
2014/09/21 20:13

jacob打开word后怎样把另一个Excel中的文件拷贝进来呢,求高手指点

jacob打开word后怎样把另一个Excel中的文件拷贝进来呢,求高手指点,现在只有合并word的示例代码,没有word合并Excel的,求高手知道,谢谢

3
0
发表了问答
2015/01/05 18:39

java如何实现对word设置只读或者加密

想问下,在java中改如何设置word只读或者给我word加密呢?希望大神能帮帮我,我已经试了POI,ITEXT,JCOB了但是都不行。。。很急,希望有过类似操作的朋友能帮帮我,谢谢啦。

8
1
发表了问答
2016/06/27 12:49

windows 2008 r2下使用jacob调用dll,返回值异常

功能:使用jacob调用dll文件,传入参数,dll返回一个字符串 jdk 1.6 32位 jacob 1.9 32位 tomcat 6.0.44 32位 首先在windows server 2003上 运行正常,已使用多年 (一) 现在将次程序迁移到 windows 10专业版 (64位) 开发环境上 将dll文件放入 sysWOW64文件夹下面,并使用 regsvr32进行注册 jdk,tomcat 仍为32位 返回正常字串 (二) 现在将次程序迁移到 windows server 2008 R2 (64位) 上 将dll文件放入 sysWOW64文件夹下面,...

3
0
发表了问答
2018/11/12 22:11

java 复制excel中的table、chart到word中,有没有稳定的组件?

windows下用过jacob,linux下不知道有什么组件好用的,求各位大神指点。

4
0
发表了问答
2014/12/16 10:36

jacob怎么合并word中table的单元格

jacob怎么合并word中table的单元格,做输出的时候,合计部分需要合并两个table单元格,谢谢!

3
0
发表了问答
2015/06/18 17:12

jacob获取属性,报错com.jacob.com.ComFailException: A COM exception has been encountered: At Invoke of: FPJE Description: ??Ч??????????

我在调用其他公司提供的DLL,获取属性的时候: String fpdm0= Dispatch.get(ds, "FPDM").getString(); ,报了这个错: com.jacob.com.ComFailException: A COM exception has been encountered: At Invoke of: FPJE Description: ??Ч?????????? at com.jacob.com.Dispatch.invokev(Native Method) at com.jacob.com.Dispatch.invokev(Dispatch.java:804) at com.jacob.com.Dispatch.get(Dispatch.java:1153) at nc.ui.so.so002....

1
0
发表了问答
2014/10/14 11:00

请问怎么实现使用jacob拷贝一个文档的部分内容(不是段落)到另一个文档中保存?

之前有试过有itext读取文档内容然后截取,取得我想要的内容但取到的内容是没有格式的,格式的丢失让我想到用jacob的copy、paste方法,但由于我只找到拷贝单一段落或是全文的方法,这个不是我要的效果,我只想取得文档里面的部分内容,请问有人做过类似的或是有什么好的想法吗? //这是copy全文方法 ComThread.InitSTA(); //被复制的文档 ActiveXComponent word2= new ActiveXComponent("Word.Application"); word2.setPropert...

1
0
发表了问答
2013/04/18 15:22

jacob操作excel 多个sheets 怎么合并成一个导出成pdf

jacob操作excel 多个sheets 怎么合并成一个导出成pdf 简单说就是把多个sheet的excel导出一个pdf

5
0
发表了问答
2017/03/21 13:19

项目技术上遇到个问题,没有解决思路,求大神帮忙看一看

问题是这样的,正在做的项目要求打印文书,服务器先将数据库数据插入xml格式的word文件,然后用jacob转成pdf,然后用pdf.js实现前台预览和打印,一开始用pdf.js实现没问题的,也可以打印,记录打印信息,但客户要求实现ie8,pdf.js在ie8中时失效的,后来换了pdfobject,然后操蛋的事发生了,我没办法记录打印信息,pdfobjct实际上是调用adober reader,我该怎么办????求大神给个思路...

4
1
发表了问答
2016/12/21 18:05

jacob 向excel里赋值时报错

代码: excelBean.OpenExcel(util.GetSessionValue("ROOT")+"temp/order/test.xlsx", false); String attachmentPdfName=util.GetOnlyID()+".pdf"; //System.out.print("\n attachmentPdfName="+attachmentPdfName); excelBean.setValue("aaa", "bbbbb");---这句报错 excelBean.SaveToPDF(attachmentRootPath+attachmentPdfName);//把excel另存为pdf 报错内容: com.jacob.com.ComFailException: Invoke of: Range Source: D...

3
0
发表了问答
2016/09/26 17:47

JACOB和Jawin有没有适用于64位系统的jar和dll

JACOB和Jawin,看了下官网都是适用win32系统。我现在的环境都是64位系统,有没有能用的

2
0
发表了问答
2014/10/10 13:56

Jacob如何实现Sheets("Sheet1").Copy After:=Sheets(3)中的after

对于Jacob调用方法的使用已经有所了解,如要实现Sheets("Sheet1").Copy Sheets(3)可以写成Dispatch.call(argSheet,"Copy",argLocationSheet);,但是如果方法中有参数如After不知如何写法

3
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
10 评论
48 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部