关于老师源码
来源:2-8 导入Word
qq_左撇子A_0
2018-03-04 14:00:40
public ImportWordResultDto imp(ImportWordParamDto dto) {
ImportWordResultDto result = new ImportWordResultDto();
result.setTitle(dto.getTitle());
HWPFDocument doc = null;
try {
doc = new HWPFDocument(dto.getWord().getInputStream());
result.setContent(doc.getDocumentText().replace("\r","<br/>"));
} catch (OfficeXmlFileException oe) {
System.out.println("这可能是一个07版的Word");
} catch (Exception e) {
result.setMsg("这可能不是一个Word");
return result;
} finally {
if(doc != null) {
try {
doc.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
XWPFDocument docx = null;
try {
docx = new XWPFDocument(dto.getWord().getInputStream());
List<XWPFParagraph> paragraphList = docx.getParagraphs();
StringBuilder content = new StringBuilder();
for (int i = 0; i < paragraphList.size(); i++) {
if(i != 0) {
content.append("<br/>");
}
content.append(paragraphList.get(i).getText());
}
result.setContent(content.toString());
} catch (IOException e) {
e.printStackTrace();
} finally {
if(docx != null) {
try {
docx.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return result;
}老师的这个源码,当是03
版的world,第一个try-catch正常执行没有异常,然后下面的try-catch是解析07
版的,岂不是会异常?,
2回答
刘翊扬
2018-03-04
我觉得可以把下面导出07版本的内容直接放在第一个
catch (OfficeXmlFileException oe) {
System.out.println("这可能是一个07版的Word");
}
刘翊扬
2018-03-04
第二个是会异常,你直接在catch里面写(Exception e)异常就行了。里面什么也不输出就可以了
相似问题