poi之导入报版本不匹配问题
原创
©著作权归作者所有:来自51CTO博客作者爱跳舞的程序员的原创作品,请联系作者获取转载授权,否则将追究法律责任
-----------------------------关于excel-----------------------------
xls与xlsx的区别
xls是excel2003及以前版本生成的文件格式。
xlsx是excel2007及以后版本生成的文件格式(excel 2007之后版本可以打开xls格式的文件)。
HSSF类,只支持2007以前的excel(文件扩展名为xls),而XSSH支持07以后的
})
@Action(description = "导入Excel")
public void importExcel(MultipartHttpServletRequest request, HttpServletResponse response) throws Exception {
MultipartFile fileLoad = request.getFile("xmlFile");
ResultMessage resultMessage = null;
String fileType = fileLoad.getOriginalFilename().substring(fileLoad.getOriginalFilename().lastIndexOf(".") + 1, fileLoad.getOriginalFilename().length());
Workbook wb = null;
if (fileType.equals("xls")) {
try {
// 07+版本
wb = new HSSFWorkbook(fileLoad.getInputStream());
} catch (Exception e) {
// 03版
wb = new XSSFWorkbook(fileLoad.getInputStream());
}
} else if (fileType.equals("xlsx")) {
wb = new XSSFWorkbook(fileLoad.getInputStream());
} else {
throw new Exception("读取的不是excel文件");
}
}
//使用如下代码,就不用区分新旧版,一行代码就生成了Workbook
//-----------------------------关于word-----------------------------
@RequestMapping("importWord")
public void importWord(MultipartHttpServletRequest request, HttpServletResponse response) throws Exception {
MultipartFile fileLoad = request.getFile("wordFile");
String fileType = fileLoad.getOriginalFilename();
InputStream inputStream = fileLoad.getInputStream();
if (StringUtil.endsWith(fileType.toLowerCase(), ".doc")) {
POIFSFileSystem pfs = new POIFSFileSystem(inputStream);
HWPFDocument hwpf = new HWPFDocument(pfs);
} else if (StringUtil.endsWith(fileType.toLowerCase(), ".docx")) {
XWPFDocument xwpf = new XWPFDocument(inputStream);
POIXMLTextExtractor ex = new XWPFWordExtractor(xwpf);
}
}