java操作word

来源:互联网 发布:医疗软件方案 编辑:程序博客网 时间:2024/05/18 06:26
package com.ray.poi.util;


import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;


import org.apache.poi.poifs.filesystem.DirectoryEntry;
import org.apache.poi.poifs.filesystem.DocumentEntry;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.textmining.text.extraction.WordExtractor;


/**
* 读写doc
* @author wangzonghao
*
*/
public class POIWordUtil {
/**
  * 读入doc
  * @param doc
  * @return
  * @throws Exception
  */
public static String readDoc(String doc) throws Exception {
     // 创建输入流读取DOC文件
      FileInputStream in = new FileInputStream(new File(doc));
      WordExtractor extractor = null;
      String text = null;
     // 创建WordExtractor
      extractor = new WordExtractor();
     // 对DOC文件进行提取
      text = extractor.extractText(in);
     return text;
}
/**
  * 写出doc
  * @param path
  * @param content
  * @return
  */
public static boolean writeDoc(String path, String content) { 
     boolean w = false; 
    try { 


    // byte b[] = content.getBytes("ISO-8859-1"); 
    byte b[] = content.getBytes(); 


    ByteArrayInputStream bais = new ByteArrayInputStream(b); 


    POIFSFileSystem fs = new POIFSFileSystem(); 
    DirectoryEntry directory = fs.getRoot(); 


    DocumentEntry de = directory.createDocument("WordDocument", bais); 


    FileOutputStream ostream = new FileOutputStream(path); 


    fs.writeFilesystem(ostream); 


    bais.close(); 
    ostream.close(); 


    } catch (IOException e) { 
    e.printStackTrace(); 
    } 
    return w; 
    } 


}
测试


package com.ray.poi.util;


import junit.framework.TestCase;


public class POIUtilTest extends TestCase {


public void testReadDoc() {
  try{
            String text = POIWordUtil.readDoc("E:/work_space/poi/com/ray/poi/util/demo.doc");
            System.out.println(text);
         }catch(Exception e){
             e.printStackTrace();
         }


}


public void testWriteDoc() {
     String wr;
  try {
   wr = POIWordUtil.readDoc("E:/work_space/poi/com/ray/poi/util/demo.doc");


    boolean b = POIWordUtil.writeDoc("c:\\demo.doc",wr); 
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }


}


}
0 0
原创粉丝点击