一个简单的搜索例子:
/**
* 获取XXX
* @param inFile word文档
* @return
*/
public static List<String> getNo(String inFile) {
List<String> lNo = new ArrayList<String>();
ActiveXComponent wordApp = null;
Dispatch docs = null;
try {
ComThread.InitSTA();// 初始化com的线程
wordApp = new ActiveXComponent("Word.Application"); // 启动word
// Set the visible property as required.
Dispatch.put(wordApp, "Visible", new Variant(false));// //设置word可见
docs = wordApp.getProperty("Documents").toDispatch();// 所有文档窗口
// inFile = "d://testx.docx";
Dispatch doc = Dispatch.invoke(
docs,
"Open",
Dispatch.Method,
new Object[] { inFile, new Variant(false),
new Variant(false) },// 参数3,false:可写,true:只读
new int[1]).toDispatch();// 打开文档
Dispatch wordContent = Dispatch.get(doc, "Content").toDispatch(); // 取得word文件的内容
Dispatch paragraphs = Dispatch.get(wordContent, "Paragraphs")
.toDispatch(); // 所有段落
int paragraphCount = Dispatch.get(paragraphs, "Count").getInt();// 一共的段落数
// System.out.println("paragraphCount:" + paragraphCount);
for (int i = 1; i <= paragraphCount; i++) {
Dispatch paragraph = Dispatch.call(paragraphs, "Item",
new Variant(i)).toDispatch();
Dispatch paragraphRange = Dispatch.get(paragraph, "Range")
.toDispatch();
String paragraphContent = Dispatch.get(paragraphRange, "Text")
.toString();
if (paragraphContent.contains("abc")) {
// System.out.println(paragraphContent.length());
paragraphContent = paragraphContent.replace(" ", "");
// System.out.println("paragraphContent:"+paragraphContent);
// System.out.println(paragraphContent.length());
String no = paragraphContent.substring(paragraphContent.indexOf("abc"), paragraphContent.indexOf("abc") + 21);
// System.out.println("no:"+no);
// System.out.println(no.substring(no.indexOf("abc") + 7));
lNo.add(no.substring(no.indexOf("abc") + 7));
}
}
} catch(Exception e) {
e.printStackTrace();
throw new RuntimeException("发生系统错误!");
} finally {
if (docs != null) {
Dispatch.call(docs, "Close", new Variant(true));
docs = null;
}
if (wordApp != null) {
Dispatch.call(wordApp, "Quit");
wordApp = null;
}
ComThread.Release();// 释放com线程
}
return lNo;
}
相关推荐
本篇将深入探讨如何使用Java和两个特定的库——iTextPDF与Jacob——来实现这一目标。 首先,iTextPDF是一个开源的Java库,专门用于创建、修改PDF文档。虽然标题提到的是Word文件,但iTextPDF通常用于处理PDF,不过...
"通过jacob实现word转为HTML"这个主题就是关于如何利用Java的一个库——Jacob来完成这项工作。Jacob是一个Java到COM桥接库,允许Java程序调用Windows COM组件,如Microsoft Office,从而实现对Office文档的操作。 ...
在Windows环境下将Word文档转换为PDF格式,常常会利用到Java的库——JACOB(Java COM Bridge)。JACOB是一个允许Java代码直接调用COM组件的库,它通过JNI(Java Native Interface)来实现这一功能。在这个场景下,...
Jacob的核心是一个动态链接库(DLL)文件——jacob.dll,它作为Java和COM之间的桥梁。在使用Jacob之前,需要将这个DLL文件放置在系统路径下的特定目录,通常是C:/Windows/System32,以便系统能够找到并加载这个组件...
Jacob的核心在于一个动态链接库(DLL)文件——jacob-1.17-M2-x64.dll,以及与其配套的Java类库文件——jaco.jar。这两个文件是使用Jacob库进行开发必不可少的部分。 首先,我们来详细了解jacob-1.17-M2-x64.dll。...
这时,一个强大的工具——Jacob,就显得尤为重要。Jacob全称为Java和COM桥接器(Java and COM Bridge),它允许Java应用程序调用Windows的COM组件,使得在Java中操作Word文档成为可能。 Jacob的核心是一个名为...
在jacob-1.19版本中,我们看到了针对不同处理器架构的两个动态链接库——jacob-1.19-x64.dll和jacob-1.19-x86.dll,分别适配64位和32位的Windows操作系统。 1. **JACOB的基本概念** - COM:是微软提出的一种组件...
【标题】"jacob.jar全包下载"涉及的是Java与COM交互的一个重要工具——Jacob库。Jacob库(Java COM Bridge)是一个开源项目,它提供了一个Java到COM桥接,允许Java程序调用Windows上的COM组件,实现Java和COM对象...
《Java解析Word——深入理解JACOB库》 在Java编程中,处理Microsoft Office文档,尤其是Word文档,是一项常见的需求。然而,Java本身并不直接支持与Office应用进行交互,这时就需要借助第三方库来实现。JACOB(Java...
在Java中使用JACOB操作Word,首先要创建一个`ActiveXComponent`对象,这个对象代表了Word应用实例。例如: ```java import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; ActiveXComponent...
在Windows操作系统下,如果你已经安装了Microsoft Office,可以借助Java的一个开源库——Jacob来实现这个功能。本文将详细介绍如何使用Jacob 1.19库将Word文件转换为PDF。 Jacob(Java COM Bridge)是一个Java语言...
标题中的"jacob-1.14.3-x64"表明这是一个针对64位系统的特定版本,它包含了Jacob库的核心动态链接库文件——jacob-1.14.3-x64.dll。 当您在运行某个基于Java的软件或进行编译工作时,如果遇到错误提示如“缺少jacob...
"利用jacob将WORD转换为HTML"这个主题聚焦于一个特定的技术解决方案,即使用Java的一个开源库——JACOB(Java COM Bridge)来实现这个转换。下面我们将深入探讨这个过程,以及涉及的相关知识点。 首先,JACOB是一个...
基于Java语言来导出Word文档的方式也有很多种,如Jacob,Apache POI,Freemarker,PageOffice,java2word 等等。。。。 在这里将通过Freemarker这个模板引擎来实现导出 Word,项目不限于Swing,SSH,SSM,Spring ...
com一般表现为dll或exe等二进制文件,像我们呆会会用到的jacob.dll文件这里说说为什么我们用java去操纵office(如:word)要使用com,而不直接 使用java去做? 首先,我们清楚office是建立在windows平台之上的,本身是...
- **文件操作**:除了转换,Jacob还可以用来创建、读取和修改Word、Excel等文件,方便在Java程序中实现复杂的文件处理任务。 - **Windows服务交互**:Jacob允许Java应用程序控制其他Windows服务,比如打印机设置、...
"Jacob+SaveAsPDFandXPS"这个主题涉及到了Java编程中的一个关键库——Jacob以及一个用于生成PDF和XPS文档的工具——SaveAsPDFandXPS.exe。接下来,我们将深入探讨这两个组件以及它们如何协同工作。 Jacob(Java ...
在这个过程中,一个常用的Java库——Jacob(Java Advanced COM Bridge)扮演了关键角色。本文将详细探讨Jacob库的使用方法以及如何借助它实现Office到PDF的转换。 Jacob是一个Java到COM桥接器,允许Java程序调用...