由于项目需要,取得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
分享到:
相关推荐
jacob解析word excel的jar包 dll文件
jacob jacob配置 java操作word java操作word:jacob(方法解析+环境配置)
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 目录下.可以正常...
任务目的 1自动生成word文档目录。 用例测试操作步骤 在一个word文档的第二页填写占位符: {目录}保存。调用程序读取目标文档,自动根据标题生成目录到{目录}位置。
jacob 导出word 整理 ............
使用jacob操作word文档的部分方法希望对你们能有所帮助
jacob操作word实例,包括文本、表格的读写操作
jacob操作word资料
运用jacob将word文件转成pdf文件,word文件支持xml格式,首先将文档中的dll放到jdk的bin文件夹下,运行java文件即可
NULL 博文链接:https://lixiamani.iteye.com/blog/581465
载Jacob_1.11_zip,终于把Jacob处理Word文档搞定了
有关jacob的word操作研究,好东西,值得参考学习!希望对你有帮助!
该word中是一些关于jacob如何操作word的范例代码!互相交流学习
如果你要对 MS Word、Excel 进行处理,JACOB 是一个好的选择。JACOB目前已经成为sourceforge(http://sourceforge.net/projects/jacob- project/)的一个开源项目,本文使用的版本是1.10.1。 这篇文章可能不能完全...
java操作word 超简单实用:第一步: 引入包jacob.jar 第二步:参考工具类MsWordTool.java 含概基本WORD 所有操作方法 【特别难点】解决实例: 1)word书签内容替换后,书签会丢失问题 2)word定点批量插入图片...
jacob将word、excel转为pdf
读取word文件的内容,并将内容返回为String类型!
java项目, 直接导入eclipse里面或者myeclipse里面就可以运行....通过jacob插件,通过word模板自动填充相应的数据,并且产生文件,为了解决有的tomcat下会乱码, 生成完成之后会转码一下, 解决了中文乱码问题.
jacob操作word文档
Jacob操作word 文档的方法集!(含创建目录),使用的Jacob版本是1.5