首先在pom中添加依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.0.0</version>
</dependency>
第一种java后台接收的是文件路径
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();
}else if (path.endsWith(".docx")){
/* 如果poi版本在4.0.0及以上那么可以使用注释的方式
OPCPackage opcPackage = POIXMLDocument.openPackage(path);
POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
buffer = extractor.getText();*/
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;
}
第二种java后台接收的是文件流
//使用MultipartFile 接收文件流
public void importWord(MultipartFile file) throws IOException {
InputStream inputStream = file.getInputStream();
String fileName = file.getOriginalFilename();
String suff = fileName.substring(fileName.lastIndexOf(".") + 1);
String content = "";
if (suff.equals("docx")) {
XWPFDocument xdoc = new XWPFDocument(inputStream);
XWPFWordExtractor extractor = new XWPFWordExtractor(xdoc);
content = extractor.getText();
System.out.println(content);
extractor.close();
} else if (suff.equals("doc")) {
WordExtractor ex = new WordExtractor(inputStream);
content = ex.getText();
System.out.println(content);
ex.close();
} else {
System.out.println("此文件不是word文件");
}
}