记一次踩坑…
POI大家都不陌生,经常拿来解析excel表格。其中,xls格式的需要使用HSSFWorkbook类来解析,xlsx格式的需要使用XSSFWorkbook格式来解析。
如果不进行区分可能会出现如下错误
org.apache.poi.poifs.filesystem.OfficeXmlFileException: The supplied data appears to be in the Office 2007+ XML. You are calling the part of POI that deals with OLE2 Office Documents. You need to call a different part of POI to process this data (eg XSSF instead of HSSF)
因为excel格式有两种,一种就是xls,一种就是xlsx,如果我们需要解析excel,以前的方法是
String fileName = file.getOriginalFilename();
先获取文件名,然后在判断他是什么的后缀名,在根据HSSFWorkbook 或者 XSSFWorkbook 得到 workbook 对象
现在有了WorkbookFactory.create(InputStream) 我们不用写那么繁琐的代码了,直接传个输入流的对象InputStream,就能得到 workbook 了,不用判断他是xls还是xlsx类型的了,
直接在maven中引用poi jar包
<!-- POI表格处理jar包 --><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.12</version></dependency>