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

JACOB解析WORD的理解

    博客分类:
  • JAVA
阅读更多
最近因一个项目需要通过上传后解析WORD里面的TABLE,弄的我焦头烂额。。。

一。先说说ComThread.InitMTA(true)和ComThread.InitMTA()的区别吧,看上去这两个方法的使用是一样的,但实际上还是不一样。我的英语不是很好,从文章上面我的理解是:前者实际上是执行一个主的单线程(Main InitSTA)。而后者在用的时候,需要先启用ComThread.startMainSTA();这两者的用法大概就是:
Thread 1:
ComThread.InitMTA(true); // a true tells JACOB to create a Main STA
...
...
ComThread.Release();
...
Thread 2:
ComThread.InitMTA();
...
...
ComThread.Release();
...
...
ComThread.quitMainSTA();

而后者的用法是:
ComThread.startMainSTA();
...
...
Thread 1:
ComThread.InitMTA();
...
...
ComThread.Release();
...
Thread 2:
ComThread.InitMTA();
...
...
ComThread.Release();
...
...
ComThread.quitMainSTA();

二。ComThread这个线程的资源JVM是回收不了的,所以在用完的时候一定要像C++一样,随用随释放。在这个系统中我就犯了一个错误,没有释放,结果导致一个功能只能用一次,其他的都用不了,呵呵,不过第一次接触这东西,虽说很老的东西了,不过用上去感觉还不错。

三。解析WORD
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[]{filePath, new Variant(false), new Variant(true)} , new int[1]).toDispatch(); //打开word文件 
wordContent = Dispatch.get(doc, "Content").toDispatch(); // 取得word文件的内容

}
catch(Exception e)
{
   // closeWord();//此方法需要自己写
}
finally
{
   closeWord();//此方法需要自己写
}


public void closeWord() //关闭文档
{
try
{
Dispatch.call(doc,"close",new Variant(false)); //false表示关闭时,不保存文档; true 关闭时保存文档
}
catch(Exception e){ }
finally
{
try
{
app.invoke("Quit", new Variant[] {}); //退出word application对象
}
catch(Exception e)
{
System.out.println("退出时出错");
}
}
}


四。以上纯属于自己用的体验,只能给大家看看,不对的地方请大家指出来,谢谢
2
0
分享到:
评论

相关推荐

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

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

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

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

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

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

    java开源包1

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包11

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包2

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包3

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包6

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包5

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包10

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包4

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包8

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包7

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包9

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包101

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    Java资源包01

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    JAVA上百实例源码以及开源项目

    百度云盘分享 简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对...

    JAVA上百实例源码以及开源项目源代码

    Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 ...

Global site tag (gtag.js) - Google Analytics