java操作word文档

package com.yxm.word;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

/**
 *
 * @author yuxueming
 *
 */

public class FileExtracter{  
 
 private ActiveXComponent wordOpen = null;
 private Dispatch dispatch = null;
 
 public FileExtracter(){
  wordOpen = new ActiveXComponent("Word.Application"); //指定类型
 } 
 
 /**
  * 打开word文件
  * @param filePath
  */
 
 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);
  }
 }
 
 /**
  * 转换成TXT文件
  * @param inputFIle
  * @param outputFile
  */
 
 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");
     }

 }
 /**
  * 关闭当前文件
  * @param filePath
  */
 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");
 }
}    

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值