知识大全 如何在java中操作word

Posted 文件

篇首语:有些人不管变得多么衰老,却从不失去他们的美丽本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 如何在java中操作word相关的知识,希望对你有一定的参考价值。

  想用java操作word文件?jacob是个不错的选择 也就是java 桥 你可以在 project/下载 我下载的版本是 注意版本太低的话可能会报错

  如果没有特殊需求 可以直接使用jacob_* zip中提供的jacob jar和jacob dll 把jacob dll文件放在系统可以找得到的路径上 一般放c:/windows/system 下就行了 注意你用的jacob dll文件和你的jacob jar包要匹配 否则会报错哦!    

  如果想自己编译也很简单 把jacob_*_src zip解开 建个工程 在build xml中稍作配置即可  

  <property name= JDK value= D:\\Java\\j sdk _ />  

  <property name= MSDEVDIR value= D:\\Microsoft Visual Studio\\VC />   

  <property name= version value= />   

  看出来了吗 你的机器上需要有JDK和VC环境 VC是用来生成jacob dll文件的 如果编译时说找不到MSPDB DLL 那就在你的Microsoft Visual Studio目录下搜索一下 拷贝到D:\\Microsoft Visual Studio\\VC \\Bin下就行了   

  如果需要对jacob里的jar包改名 (虽然通常不会发生这种情况 但如果你需要两个版本的jacob同时使用 改名可能是一种选择) 这时你的工作就多一些   

  ( )package改名是必须的了 比如我们把src下的 jacob activeX改为 test jacob activeX 把改为 打包时只有这两个包是有用的 所以只改它们就够了   

  ( )然后修改build xml中src java jacob mainpackage的value为 test jacob 修改java class main的value为 Jacob   

  ( )别忘了javaJarBin中打包的源码路径也要改 <include name= /**/* class />改为<include name= /test/**/* class />   

  ( )build xml中对生成的dll和jar包也要改个名 比如我们把这两个文件改为jacob_test dll和jacob_test jar 修改build xml中的enerated filename dll和generated filename jar的value为你新改的名字   

  ( ) LibraryLoader中 System loadLibrary( jacob );改成System loadLibrary( jacob_test );    ( )另外 很重要的 在jni中* cpp和* h中_jacob_统一改为_test_jacob_ /jacob/统一改为/test/jacob/   

  ( )ant编译 编译好的文件在release目录下   

  ( )最后把编译好的jacob_test dll文件放在windows/system 下就大功告成了     

  现在该用到jacob jar了 如果你自己修改过jar包的名字 用新改的jar包 如jacob_test jar 这里统一称为jacob jar   

  首先在classpath中引入jacob jar包 如果是web应用 WEB INF的lib中也要加入jacob jar包     

  下面给一个例子      

  类ReplaceWord java     

  import *;     

  import jacob activeX *;         

  public class ReplaceWord        

  public static void main(String[] args)          

  ActiveXComponent app = new ActiveXComponent( Word Application );   //启动word         

  String inFile = C:\\\\test doc ;   //要替换的word文件         

  try            

  app setProperty( Visible new Variant(false));   //设置word不可见           

  Dispatch docs = app getProperty( Documents ) toDispatch();         

  Dispatch doc = Dispatch invoke(docs Open Dispatch Method new Object[] inFile new Variant(false) new Variant(false) new int[ ]) toDispatch();  //打开word文件 注意这里第三个参数要设为false 这个参数表示是否以只读方式打开 因为我们要保存原文件 所以以可写方式打开                 

  Dispatch selection=app getProperty( Selection ) toDispatch();//获得对Selection组件        Dispatch call(selection HomeKey new Variant( ));//移到开头        

  Dispatch find = Dispatch call(selection Find ) toDispatch();//获得Find组件        

  Dispatch put(find Text name );       //查找字符串 name         

  Dispatch call(find Execute );           //执行查询        

  Dispatch put(selection Text 张三 );  //替换为 张三

  Dispatch call(doc Save );   //保存           

  Dispatch call(doc Close new Variant(false));       

   catch (Exception e)            

  e printStackTrace();         

   finally             

  app invoke( Quit new Variant[] );         

  app safeRelease();       

         

       

     

  也许你会问 我怎么知道要调用哪个方法传哪些参数来进行操作?别忘了 word还有宏呢!自己录制一个宏 编辑这个宏就可以看到代码了!用哪个对象的哪个方法就看你的了   

  我总结了一下   

  document下的组件都用Dispatch selection=app getProperty( Selection ) toDispatch()这种方法获得   

  再往下的组件就需要调用selection的方法来获取 如 Dispatch find = Dispatch call(selection Find ) toDispatch()   

  如果某个方法需要参数 Dispatch doc = Dispatch invoke(docs Open Dispatch Method new Object[] inFile new Variant(false) new Variant(false) new int[ ]) toDispatch()是一个例子 这是调用docs的Open方法 Object[]数组里就是它需要的参数了   

cha138/Article/program/Java/hx/201311/26432

相关参考

知识大全 Java调用com组件操作word使用总结

Java调用com组件操作word使用总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一准备

知识大全 java对word、excel、pdf等操作综合文章

  Java操作PDFJava操作WordExcelAccess参考:?forum=&thread=&tstart=&trange=JavaExcelAPI文档一个jacob操

知识大全 Java操作Word,Excel,Access,IE,OutLook, PDF 等

Java操作Word,Excel,Access,IE,OutLook,PDF等  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,

知识大全 通过jacob对excel,word进行打印等操作

  因为项目有个需求要求能够在某个预定时间对特定报表进行自动打印报表的形式主要是excel如果是c++或者c#什么的简直是小菜一碟可惜偏偏是java实现并且这又不同于常见的页面手工打印可以通过java

知识大全 java抽取word,pdf的四种武器

  chris()  毕业于中国人民大学信息学院  年月    很多人用java进行文档操作时经常会遇到一个问题就是如何获得wordexcelpdf等文档的内容?我研究了一下在这里总结一下抽取word

知识大全 Java中根据模板导出数据到word的解决方案

Java中根据模板导出数据到word的解决方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  J

知识大全 在Delphi中使用CreateOleObject方法对WORD文件进行操作

在Delphi中使用CreateOleObject方法对WORD文件进行操作  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让

知识大全 用javascript操作word文档

  向word中写入内容  首先在word中设置书签如书签名为bookmarkjavascript中可以这样写  varword;word=newActiveXObject(WordApplicati

知识大全 在word文档中,正常显示页都是竖页,想插入横页怎么操作

在word文档中,正常显示页都是竖页,想插入横页怎么操作?谢谢!应该插入"分节符",才能改变页面设置.比如,前三页都是正常竖页,你在第四页前插入分节符,然后对第四页页面进行页面设置,设为横向即可,而不

在某个Word文档窗口中进行了多次剪切操作,关闭了该文档窗口后,剪贴板中的内容为__

在某个Word文档窗口中进行了多次剪切操作,关闭了该文档窗口后,剪贴板中的内容为_____。A、第一次剪切的内容B、最后一次剪切的内容C、所有剪切的内容D、空白答案:B解析:在Windows环境下,在