但发现docx的支持,doc就异常了。
后来找了很多资料发现是解析方法不一样。
首先要导入poi相关的jar包
我用的是maven,pom.xml引入如下:
1
2
3
4
5
6
7
8
9
10
|
< dependency >
< groupId >org.apache.poi</ groupId >
< artifactId >poi-ooxml</ artifactId >
< version >3.8</ version >
</ dependency >
< dependency >
< groupId >org.apache.poi</ groupId >
< artifactId >poi-scratchpad</ artifactId >
< version >3.8</ version >
</ dependency >
|
java获取word文本内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
public BaseResp getParsedTxt(MultipartFile file) throws Exception {
BaseResp br= new BaseResp( "200" , "" ) ;
String textType = file.getContentType();
String txt = "" ;
if (textType.equals(TXT_TYPE)){
String code = getCharset(file);
txt = new String(file.getBytes(),code);
} else if (textType.equals(DOC_TYPE)){
HWPFDocument doc = new HWPFDocument(file.getInputStream());
Range rang = doc.getRange();
txt = rang.text();
System.out.println(txt);
} else if (textType.equals(DOCX_TYPE)){
File uFile = new File( "tempFile.docx" );
if (!uFile.exists()){
uFile.createNewFile();
}
FileCopyUtils.copy(file.getBytes(), uFile);
OPCPackage opcPackage = POIXMLDocument.openPackage( "tempFile.docx" );
POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
txt= extractor.getText();
uFile.delete();
} else {
br = new BaseResp( "300" , "上传文件格式错误,请上传.txt或者.docx" );
return br;
}
br.setDatas(txt);
return br;
}
|
功能实现了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。