天天看点

java操作word文档

package com.yxm.word;

import com.jacob.activeX.ActiveXComponent;

import com.jacob.com.Dispatch;

import com.jacob.com.Variant;

public class FileExtracter{  

 private ActiveXComponent wordOpen = null;

 private Dispatch dispatch = null;

 public FileExtracter(){

  wordOpen = new ActiveXComponent("Word.Application"); //指定类型

 } 

 public void openWord(String filePath){

  try{  

   wordOpen.setProperty("Visible",true);

   dispatch = wordOpen.getProperty("Documents").toDispatch();

   Dispatch.invoke(dispatch,"Open",Dispatch.Method,new Object[]{filePath},new int[1]);

  }

  catch(Exception e){

   e.printStackTrace();

  }finally{

   closeDispatch(filePath);

  }

 }

 public  void extractDoc(String inputFIle,String outputFile)

 {

     boolean flag = false;               

     try {       

     wordOpen.setProperty("Visible", false);        // 设置word不可见     

     dispatch = wordOpen.getProperty("Documents").toDispatch();   // 打开word文件

        Dispatch doc2 = Dispatch.invoke(dispatch,"Open", Dispatch.Method, new Object[] { inputFIle, false,

          true}, new int[1]).toDispatch();             // 作为txt格式保存到临时文件 

        Dispatch.invoke(doc2, "SaveAs", Dispatch.Method, new Object[] {outputFile, new Variant(7) }, new int[1]); //关闭word

        Variant f = new Variant(false);

        Dispatch.call(doc2, "Close", f);

        flag = true;

     } catch (Exception e) {

        e.printStackTrace();

     } finally {

      wordOpen.invoke("Quit", new Variant[] {});

     }

     if (flag == true) {

        System.out.println("Transformed Successfully");

     } else {

        System.out.println("Transform Failed");

     }

 }

 public void closeDispatch(String filePath){

  Dispatch.call(dispatch,"close",filePath);

 }

 public static void main(String [] args ){

//  new FileExtracter().openWord("f:/rz.doc");

  new FileExtracter().extractDoc("f:/rz.doc", "f:/rz.txt");

 }

}