`
ypluck
  • 浏览: 77405 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

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
 
  import com.jacob.com.Dispatch;
  import com.jacob.com.Variant;
//import com.jacob.com.ComThread;这个先不用
  import com.jacob.activeX.ActiveXComponent;
  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,下面再看看得到表格的内容的一个方法:
	/**
	 * 得到第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;
}

嘿嘿,才入道,慢慢学习,希望给和我一样的朋友一点小小帮助o(^_^)o
分享到:
评论
3 楼 body77 2010-12-15  
getTablesCount 这个方法没有?
2 楼 ypluck 2008-12-29  
表格里面嵌入表格,你把他看成一个表格,查下有多少行与列就可以了,有问题请加QQ:275321130,一起学习
1 楼 hbing110 2008-12-29  
有个问题请教一下,如在表格的第三行,第二列里面又是一个表格,这时我想在这个内嵌表格里面写入数据,应该怎么做呢?
我的msn:hbing110@hotmail.com

相关推荐

    jacob 操作word 文档详解

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

    jacob解析word excel附件

    jacob解析word excel的jar包 dll文件

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

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

    jacob生成word目录

    1. **初始化JACOB**: 在Java代码中,我们需要导入JACOB相关的库,并初始化一个`ActiveXComponent`对象,代表Word应用程序实例。 ```java import com.jacob.activeX.ActiveXComponent; import ...

    jacob操作word(超详细)

    1、把jacob.dll文件,复制到 windows\system32 目录下。(注:我用的时候这个方法不能运行) 2、 把jacob.dll放入 Java\jdk1.5.0_06\jre\bin目录下.把jacob.jar放入 Java\jdk1.5.0_0\jre\lib\ext 目录下.可以正常...

    jacob读取word表格

    标题“jacob读取word表格”涉及到的是使用Jacob库来操作Microsoft Word文档,特别是从中读取表格数据。Jacob是一个Java到COM桥接库,允许Java应用程序调用COM组件,如Microsoft Office的应用程序。 在Java中,直接...

    通过jacob实现word转为HTML

    "通过jacob实现word转为HTML"这个主题就是关于如何利用Java的一个库——Jacob来完成这项工作。Jacob是一个Java到COM桥接库,允许Java程序调用Windows COM组件,如Microsoft Office,从而实现对Office文档的操作。 ...

    jacob 导出word 整理

    《使用Jacob库导出Word文档详解》 在Java编程中,有时我们需要与Microsoft Office应用程序进行交互,例如创建、编辑或导出Word文档。在这种情况下,Jacob(Java COM Bridge)库是一个非常有用的工具。Jacob允许Java...

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

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

    Jacob操作word 文档的方法集!(含创建目录),使用的Jacob版本是1.5

    Jacob是一个Java库,它提供了一个接口来调用Microsoft Office应用程序,如Word,Excel和PowerPoint。这个库使得在Java程序中处理Office文档成为可能,无需使用COM(Component Object Model)编程。在这个“Jacob操作...

    jacob操作word文件

    Jacob库在Java中用于操作Microsoft Office应用程序,如Word、Excel等。这个库是Java和COM接口之间的桥梁,允许Java程序能够调用COM组件,从而实现对Office文档的创建、编辑和格式化等功能。在给定的代码片段中,`...

    JACOB Java操作word 优秀

    java操作word 超简单实用:第一步: 引入包jacob.jar 第二步:参考工具类MsWordTool.java 含概基本WORD 所有操作方法 【特别难点】解决实例: 1)word书签内容替换后,书签会丢失问题 2)word定点批量插入图片...

    jacob操作word转换成pdf

    1. DLL文件版本不匹配:确保你使用的JACOB版本和你的Office版本兼容。 2. 权限问题:如果Word文档位于受保护的位置,可能需要以管理员权限运行程序。 3. 文档格式不支持:虽然JACOB支持XML格式的Word文档,但不是...

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

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

    Jacob实现word转PDF之格式最美转化

    1. **安装Jacob**:下载Jacob的jar文件,并将其添加到你的Java项目的类路径中。同时,还需要将Jacob的动态链接库(dll文件)放到系统路径下的bin目录,以便Java能够找到并加载它。 2. **初始化COM**:在Java代码中...

    jacob操作word实例

    jacob操作word实例,包括文本、表格的读写操作

    JACOB操作word和excel示例

    在IT行业中, Jacob库是一个非常实用的工具,它允许Java应用程序与Microsoft Office进行交互,包括Word和Excel。本文将深入探讨如何使用Jacob库来操作Word和Excel,通过提供的示例文档,我们将理解如何进行文件转换...

    使用jacob将word转换为html的完整代码

    1. 引入jacob库 2. 启动并隐藏Word应用 3. 打开Word文档 4. 另存为HTML 5. 关闭文档和退出Word应用 这个过程在给定的压缩包文件"word2htm"中应该包含了一个完整的MyEclipse工程,你可以直接导入并运行,以体验和...

    jacob给Word文档添加页脚

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

    jacob-java调用word

    通过JACOB,Java开发人员可以创建和操作Word文档,执行宏命令,甚至将Word文档转换为PDF格式。使用JACOB前,需要确保已经在Java开发环境中加入了JACOB的jar包。 首先,JACOB允许Java调用Word中的宏。在使用JACOB...

Global site tag (gtag.js) - Google Analytics