Java使用poi读取doc/docx文档内容

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ethan__xu/article/details/89354780

如果poi版本为最新版本

package test;

import org.apache.poi.POIXMLDocument;
import org.apache.poi.POIXMLTextExtractor;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.springframework.util.StringUtils;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

public class PoiTest2 {
    /**
     * 读取word文件内容
     *
     * @param path
     * @return buffer
     */

    public String readWord(String path) {
        String buffer = "";
        try {
            if (path.endsWith(".doc")) {
                InputStream is = new FileInputStream(new File(path));

                WordExtractor ex = new WordExtractor(is);
                buffer = ex.getText();
                ex.close();
            } else if (path.endsWith("docx")) {
                OPCPackage opcPackage = POIXMLDocument.openPackage(path);
                POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
                buffer = extractor.getText();
                extractor.close();
            } else {
                System.out.println("此文件不是word文件!");
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

        return buffer;
    }

    public static void main(String[] args) {
        PoiTest2 tp = new PoiTest2();
        String content = tp.readWord("C:\\Users\\Xiaofei\\Desktop\\新建 DOCX Document.docx");
        if(!StringUtils.hasText(content)){
            System.out.println("文档为空");
        }
        System.out.println("content===="+content);
    }

}

如果poi版本为3.8-beta2

public class PoiTest2 {
    /**
     * 读取word文件内容
     *
     * @param path
     * @return buffer
     */

    private String readWord(String path){
        String buffer = "";
        try {
            if (path.endsWith(".doc")){
                InputStream is = new FileInputStream(new File(path));
                WordExtractor ex = new WordExtractor(is);
                buffer = ex.getText();
            }else if (path.endsWith(".docx")){
                FileInputStream fs = new FileInputStream(new File(path));
                XWPFDocument xdoc = new XWPFDocument(fs);
                XWPFWordExtractor extractor = new XWPFWordExtractor(xdoc);
                buffer = extractor.getText();
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return buffer;
    }

    public static void main(String[] args) {
        PoiTest2 tp = new PoiTest2();
        String content = tp.readWord("C:\\Users\\Xiaofei\\Desktop\\新建 DOCX Document.docx");
        if(!StringUtils.hasText(content)){
            System.out.println("文档为空");
        }
        System.out.println("content===="+content);
    }

}

猜你喜欢

转载自blog.csdn.net/ethan__xu/article/details/89354780