导入依赖
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-scratchpad -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.17</version>
</dependency>
案例
本地文件
public static String readDocx(String path) {
String buffer = "";
try {
if (path.endsWith(".doc")) {
InputStream is = new FileInputStream(new File(path));
WordExtractor we = new WordExtractor(is);
buffer = we.getText();
we.close();
} else if (path.endsWith(".docx")) {
OPCPackage opcPackage = POIXMLDocument.openPackage(path);
POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
buffer = extractor.getText();
extractor.close();
}else {
System.err.println("该文件不是word文件!");
}
} catch (Exception e) {
e.printStackTrace();
}
return buffer;
}
public static void main(String[] args) {
String path = "D:\\zyz worker\\doc-docx-Test\\张三请假审批.xml";
String text = "";
try {
text = readDocx(path);
System.err.println(text);
} catch (Exception e) {
e.printStackTrace();
}
}
使用接收文件流的方式
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文件");
}
}