`
uu011
  • 浏览: 30721 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Jacob解析word

    博客分类:
  • java
 
阅读更多
由于项目需要,取得word的内容,因研究了下Jacob,尽管POI也能解析word,但我觉得Jacob还是好些(注:Jacob好像不能在Linux下用)昨天下午看了看Jacob的源码,今天上午终于把word的表格给搞定了(速度有点小慢,不过没关系,慢慢来)。下面来和大家分享下我的快乐:

首先需要下载jacob,去官网http://sourceforge.net,下载后,需要把jacob.dll放到windows目录的system32下,把jacob.jar Copy到lib下就OK, 我用的工具是Myeclipse6.

  接着我们看下打开word,嘿嘿o('_')o

Java代码
import javax.xml.ws.Dispatch;

public class Test {
    private ActiveXComponent app = null;
    private Dispatch doc = null;
    private Dispatch docs = null;
    private Dispatch wcontent = null;
    public boolean openWord(String wordPath) {
       boolean isOpen = true;
       try {
           app = new ActiveXComponent("Word.Application"); // 启动word, 生成
                                                     // 一个ActiveXComponent
                                                     // 对象
           app.setProperty("Visible", new Variant(false)); // 设置文档可见性
           docs = app.getProperty("Documents").toDispatch(); // 获得document对象
           doc = Dispatch.invoke(
                  docs,
                  "Open",
                  Dispatch.Method,
                  new Object[] { wordPath, new Variant(false),
                         new Variant(true) }, new int[1]).toDispatch(); // 打开word文件
           wcontent = Dispatch.get(doc, "Content").toDispatch(); // 取得word文件的内容
       } catch (Exception e) {
           isOpen = false;
       } finally {

       }
       return isOpen;
    }
}

上面的方法,你只需要传递word文件所在的目录就OK,下面再看看得到表格的内容的一个方法:
Java代码
/**
* 得到第X个表格的第N行第M列的内容
* @param tableNum 第几个表格
* @param row 第N行
* @param col 第M列
* @param tables 表格对象
* @return
*/
public  String table(int tableNum,int row,int col,Dispatch tables)   { 
    String tempText = "";               // 获得表格的内容
    try  { 
        int tableCount = getTablesCount(tables);   // 获取文档中表格总数
        if(tableCount > 0) {// 判断文档中是否存在表格
            if(tableNum<=tableCount) {  // 判断所查表格序号是否超过文档表格总数
                // 得到第X个表格的对象
                Dispatch table = Dispatch.call(tables, "Item",
                              new Variant(tableNum)).toDispatch();   // 得到第X个表格对象的行
                Dispatch rows = Dispatch.call(table,"Rows").toDispatch(); // 获取当前表格的行数
                int rowCount = Dispatch.
                                  get(rows,"Count").getInt();                              
                if(row <=rowCount) { 
                    Dispatch  cell = Dispatch.call(table, "Cell", new Variant(row),
                                        new Variant(col)).toDispatch(); 
                    Dispatch  rangeCell = Dispatch.call(cell,"Range").toDispatch(); 
                    tempText = Dispatch.get(rangeCell,"Text").getString(); //得到所查表格内容
                    tempText="0#"+tempText; 
                }else {
                    tempText = "1#行号不存在";                                               
                } 
            } 
            else { 
                tempText = "2#表格不存在";             
            } 
        } 
    } 
    catch(Exception e){ 
        tempText="3#表格列不存在"; 
    } 
    return tempText; 
}
分享到:
评论
1 楼 guoguo1010 2015-02-05  
楼主,jacob是不能在linux用?

相关推荐

    jacob解析word excel附件

    jacob解析word excel的jar包 dll文件

    jacob 操作word 文档详解

    Jacob 操作 Word 文档详解 Jacob 操作 Word 文档概述 Jacob 是一个 Java 库,用于访问和操作 Microsoft Office 应用程序,包括 Word。它提供了一个基于 COM(Component Object Model)的接口,允许 Java 应用...

    java操作word:jacob(方法解析+环境配置)

    ### Java操作Word:Jacob(方法解析+环境配置) #### Jacob简介 Jacob是一个开源的Java-COM桥接工具,它允许Java程序与Windows平台上的COM组件进行交互。这意味着开发者可以通过Java来控制诸如Microsoft Word、...

    java之jacob实现获取word文件的内容

    读取word文件的内容,并将内容返回为String类型!

    jacob以目录和段落分析读取Word文档(自己写的)

    在这个场景下,我们将详细探讨如何利用Jacob来分析和处理Word文档,特别是目录、段落以及它们之间的关系。 首先,标题和目录在Word文档中起着组织和导航的作用。Jacob提供了API,可以让我们访问到Word文档的内置...

    jacob给Word文档添加页脚

    ### jacob给Word文档添加页脚 在日常工作中,Word文档是经常被使用的工具之一,尤其是在需要编写报告、论文或专业文档时。为了使文档更加规范和专业,往往需要添加页眉、页脚等元素。其中,页脚常用于显示页码、...

    java使用jacob将word 转pdf

    ### Java使用JACOB将Word转为PDF:详解与实践 #### 一、配置环境与原理简介 在Java中利用JACOB库实现Word文档转PDF功能时,首先需要完成必要的环境配置工作。 ##### 1. JACOB库介绍 JACOB(Java COM Bridge)是一...

    利用Jacob 实现了word转PDF

    以下是对利用Jacob实现Word转PDF的详细说明: 1. **Jacob库介绍**: Jacob是一个Java到COM桥接器,它使得Java开发者能够使用COM组件,如Microsoft Office的Word应用,来执行特定的任务。Jacob通过JNI(Java Native...

    jacob操作word小结

    ### 使用Jacob操作Word知识点总结 #### 一、Jacob简介与Word自动化操作背景 Jacob(Java COM Bridge)是一款开源的Java库,它允许Java程序通过COM接口调用Windows平台下的应用程序,如Microsoft Office套件中的...

    jacob调用word代码

    ### jacob调用Word代码详解 #### 一、前言 在进行自动化办公或文档处理时,经常会遇到需要与Microsoft Word交互的需求。JACOB(Java COM Bridge)库提供了一种简便的方式,允许Java程序通过COM接口来操作Office...

    jacob按目录拆分文档(含dll和jar),代码说明详细

    基于上次上传的jacob按目录解析word,又开发了按目录拆分文档功能并将拆分后的小文档另存为html文件。 基于上次上传的jacob按目录解析word,又开发了按目录拆分文档功能并将拆分后的小文档另存为html文件。

    jacob2word

    本文将深入探讨Jacob与Word的交互,解析其基本原理和常见应用场景。 Jacob库的核心在于它提供了一种方法,让Java程序能够调用Windows系统的COM(Component Object Model)接口。COM是微软提出的一种组件对象模型,...

    [jacob]---------------->java 实现 word 转换为html jacob

    标题中的 "[jacob]----------------&gt;java 实现 word 转换为html jacob" 提示我们,这个压缩包文件包含了一个使用Java编程语言,并利用Jacob库将Microsoft Word文档转换为HTML格式的示例代码。Jacob是Java和COM...

    java将word转图片转pdf_jacob.zip

    另一种是通过使用支持PDF生成的库,如iText或Apache POI,直接解析Word文档内容并重新构建为PDF格式。在这个项目中,由于提到了Jacob,很可能是采用了前一种方法,通过截图方式将Word内容转换为PDF,这要求开发者对...

    jacob1.18源码+jar包

    以前曾经被称为OLE 和OCX activeX web插件可以用于各种非HTML的工作 比如 对MicrosoftExcel 或 MicrosoftWord 文件做操作 解析JS VB脚本 播放FA有一点可以确定的是在JACOB内部 com jacob activeX是建立在com jacob ...

    Heritrix lucene开发自己的搜索引擎(源码)1

    使用Jacob解析WORD文件 Google的Search API的使用 安装:直接在Eclipse中选取“import-&gt;Existing Project” Eclipse工程/ch9:原书第十二章的工程文件 使用正则表达式解析网页文件 使用HTMLParser解析网页文件 ...

    开发自己的搜索引擎lucene and heritrix

    使用Jacob解析WORD文件 Google的Search API的使用 安装:直接在Eclipse中选取“import-&gt;Existing Project” Eclipse工程/ch9:原书第十二章的工程文件 使用正则表达式解析网页文件 使用HTMLParser解析网页文件 ...

    Heritrix lucene开发自己的搜索引擎(源码)3

    使用Jacob解析WORD文件 Google的Search API的使用 安装:直接在Eclipse中选取“import-&gt;Existing Project” Eclipse工程/ch9:原书第十二章的工程文件 使用正则表达式解析网页文件 使用HTMLParser解析网页文件 ...

    java word转换HTML jacob实现

    ### Java 使用 JACOB 将 Word 转换为 HTML 的详细解析 #### 一、JACOB 简介 JACOB (Java COM Bridge) 是一个 Java 库,它允许 Java 应用程序调用 COM 组件。通过 JACOB,开发者可以轻松地在 Java 应用程序中集成 ...

    word转换成html程序及所需jacob架包

    转换过程通常包括解析Word文档的样式、图片和布局,并在HTML中重现它们。 5. **转换流程**: - 首先,程序通过JACOB加载Word文档。 - 然后,它遍历文档的各个部分,包括文本、段落、图片等。 - 接着,将Word的...

Global site tag (gtag.js) - Google Analytics