`
phipray
  • 浏览: 64514 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

纯Java实现对word的读写

阅读更多
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;



public class Word {
/**
* 读取纯文本的word文件
*/
public  String  readWord(String doc) throws Exception {
          String context = null;
          WordExtractor extractor = null; //纯文本的遍历器
         try {  
FileInputStream in = new FileInputStream(new File(doc));

             extractor = new WordExtractor(in);
    context = extractor.getText();
             } catch (Exception e) {  
        e.printStackTrace();  
    }  

    return context;
}

/**
* 对word文档做写操作
*
*/
public  boolean writeWord(String path, String content) throws Exception {
boolean w = false;  
    try {  
        byte b[] = content.getBytes(); 
        FileOutputStream fs = new FileOutputStream(path);
        HWPFOutputStream hos = new HWPFOutputStream();

        hos.write(b, 0, b.length);
        hos.writeTo(fs);
        hos.close();
                 w=true;
    } catch (Exception e) {  
        e.printStackTrace();  
    }  
 
    return w;  

}

public static void main(String[] args) {
ReadWord rw = new ReadWord();

        try{
         String text = rw.readDoc("D:\\workspace\\MyUntil\\t.doc");
         rw.writeDoc("D:\\workspace\\MyUntil\\d.doc", text);
           }catch(Exception e){
            e.printStackTrace();

           }

    }

}

所需的包请各位自己上apache的官网上poi工程目录下下吧
poi-3.5-final
poi-contrib-3.5-final
poi-ooxml-3.5-final
poi-scratchpad-3.5-final


我在本机跑过,能跑起来(如果你们跑不起,就留言吧)
能对word2003做读写操作,当然这个里的读只是读写都只做到对最简单的纯文本word.
在读word方面我能做到对word中图片和表的读取,不过是分开读,不能对同时含有文字,图片,表的word作为一个整体来读,就是说没办法处理文字,图片,表的相对位置
写方面我还没能把图片,表写到word里
希望如果有人知道怎么做的话,能留个言,让大家学习学习
分享到:
评论
2 楼 phipray 2012-02-16  
很久的时候写的,现在的api都改了很多,没试过啦,有时间我弄弄
1 楼 spp_1987 2012-02-07  
如果我把 word版本换成2010的 , 会跑起来嘛? 

相关推荐

Global site tag (gtag.js) - Google Analytics