java poi导入导出word文档

最近小弟现在,写了一个导入导出的demo,网上搜了许多大佬们写的导入导出的功能。参考了许多意见。本来以前写过poi导入导出Excel文档,奈何u盘找不到了。。。为了防止再次丢失,写个博客保存一下。

其实导入导出功能实现起来很简单,关键是你得导入正确的jar包,然后调用里面的方法就行了。
/*
* 依赖jar包:
* dom4j-1.6.1.jar
* geronimo-stax-api_1.0_spec-1.0.jar
* poi-3.7-20101029.jar
* poi-ooxml-3.7-20101029.jar
* poi-ooxml-schemas-3.7-20101029.jar
* poi-scratchpad-3.7-20101029.jar
* xmlbeans-2.3.0.jar
* commons-logging-1.1.jar
*/
public class WordDemo {

public static void main(String args[]) {
    String context = null;

    context = readDoc("E:\\4s\\sss.docx");
    System.out.println(context);

/*  String[] aa = context.split("\\s+"); 

    List<Map> dataList = new ArrayList<Map>();
    int num = aa.length / 3;
    int j = 0;
    for(int i = 0 ; i <num; i++){
        //String name = aa[j]+aa[j+1]+aa[j+2];
        Map<String, String> maps = new HashMap<String, String>();
        maps.put("姓名", aa[j]);
        maps.put("性别", aa[j+1]);
        maps.put("工号", aa[j+2]);
        //System.out.println(name);
        dataList.add(maps);
        j+=3;
    }

    System.out.println(dataList);*/

    /*context = "NewFile";
    context+="\n"+
            "1234"+"\r\n"+
            "abcdef";*/
    writeDoc("E:\\4s\\bbbaaa.doc",context);
}

/**
 * 读取Word文件
 */
public static String readDoc(String doc) {
    String text = null;
    try {
        File file = new File(doc);
        String fileName = file.getName();
        int a  = fileName.lastIndexOf(".");
        String name = fileName.substring(a,fileName.length());

        if(name.equals(".doc")){
            // 创建输入流读取DOC文件
            FileInputStream in = new FileInputStream(file);
            // 创建WordExtractor
            WordExtractor extractor = new WordExtractor(in);
            // 对DOC文件进行提取
            //text = extractor.extractText(in);
            text = extractor.getTextFromPieces();
            // text = extractor.getText();
        }else if(name.equals(".docx")){
            FileInputStream fis = new FileInputStream(file);
            XWPFDocument xdoc = new XWPFDocument(fis);
            XWPFWordExtractor wordExtractor = new XWPFWordExtractor(xdoc);
            text = wordExtractor.getText();
            //CoreProperties coreProps = wordExtractor.getCoreProperties();  
            fis.close();
        }else{
            text = "文件格式不符";
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return text;
}

 /**
  * 将内容写成一个doc文件,保存在磁盘上。
  */
public static boolean writeDoc(String path, String content) { 
    ByteArrayInputStream bais = null;
    FileOutputStream ostream = null;
    boolean w = false; 
    try {
        content+="\r\n";
        //byte b[] = content.getBytes("ISO-8859-1");
        //byte b[] = content.getBytes("gbk");
        //byte b[] = content.getBytes("GB2312");
        //byte b[] = content.getBytes("UTF-8");
        byte b[] = content.getBytes();

        bais = new ByteArrayInputStream(b);
        POIFSFileSystem fs = new POIFSFileSystem(); 
        fs.getRoot().createDocument("WordDocument", bais);

        ostream = new FileOutputStream(path);

        fs.writeFilesystem(ostream);
    } catch (IOException e) { 
        e.printStackTrace(); 
    } finally {
        if(bais!=null) try {bais.close(); } catch(Exception e) {e.printStackTrace();} 
        if(ostream!=null) try {ostream.close(); } catch(Exception e) {e.printStackTrace();} 
    }

    return w; 
}

}

里面导出的功能不怎么完整,还有一些导出的字体样式,字体大小,背景颜色等等。。。
大概就这些代码了,有jar包找不到的可以给小弟留下你们邮箱。我这里也有完整的demo,有需要的可以也可以留下邮箱。。。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值