导入.xlsx文件时报错提示: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 XSSFSHEET instead of HSSF)
经分析,在使用apache.poi库中的HSSFWorkbook导入.xlsx文件,版本错误。
其中,HSSFWorkbook适用于Excel 2003以前版本,后缀.xls文件;XSSFWorkbook适用于Excel 2007及之后版本,后缀.xlsx文件;如果导出大数据量文件,一般用SXSSFWorkbook。
代码:
XSSFWorkbook workbook = new XSSFWorkbook(inputstream);
XSSFSheet sheet = workbook.getSheetAt(0);
int lastRowNum = sheet.getLastRowNum();
for(int i=0;i<lastRowNum;i++){
...
XSSFRow row = sheet.getRow(i);
String column1 = row.getCell(0).getStringCellValue();
…
}