poi操作word

本文介绍了如何利用Apache POI库实现对Word文档的操作,包括读取和写入DOC格式文件的方法。通过示例代码展示了如何提取Word文档的内容以及如何将内容写入新的Word文档。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

poi操作word

1、环境支持

    1.1 添加poi支持:包下载地址http://www.apache.org/dyn/closer.cgi/poi/release/

     1.2 POI对Excel文件的读取操作比较方便,POI还提供对Word的DOC格式文件的读取。但在它的发行版本中没有发布对Word支持的模块,需要另外下载一个POI的扩展的Jar包。下载地址为http://www.ibiblio.org/maven2/org/textmining/tm-extractors/0.4/ 下载extractors-0.4_zip这个文件

2、提取Doc文件内容

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;
}

public static void main(String[] args) {
        try{
            String text = WordReader.readDoc("c:/test.doc");
            System.out.println(text);
         }catch(Exception e){
             e.printStackTrace();
         }
     }

3、写入Doc文档

import java.io.ByteArrayInputStream;
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;

public class WordWriter {
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; 
   } 
   public static void main(String[] args) throws Exception{ 
   String wr=WordReader.readDoc("D:\\test.doc");
   boolean b = writeDoc("D:\\result.doc",wr); 
   } 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值