解析excel文件数据 .xls格式;XSSF为解析.xlsx格式
public static List<Map<String, Object>> analysisXlsExcel(HSSFWorkbook workbook,String[]columnsArr){
List<Map<String, Object>> lstData = new LinkedList<Map<String, Object>>();
HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(workbook);
HSSFSheet childSheet = workbook.getSheetAt(0);
try {//从第二行开始解析
for (int j = 1; j <= childSheet.getLastRowNum(); j++) {
Integer num = 0;
HSSFRow row = childSheet.getRow(j);
StringBuilder rowValue = new StringBuilder();
if (null != row && !"".equals(row)) {
Map<String, Object> dataRow = new HashMap<String, Object>();
for (int k = 0; k < columnsArr.length; k++) {
HSSFCell cell = row.getCell(k);
if (null != cell && !"".equals(cell)) {
//获取单元格中的数据
// cell.setCellType(HSSFCell.CELL_TYPE_STRING);
dataRow.put(columnsArr[k],UtilExcel.getCellValue(cell, evaluator));
rowValue.append(UtilExcel.getCellValue(cell, evaluator));
++num;
} else {
if (!columnsArr[k].isEmpty()){
dataRow.put(columnsArr[k],"");
}
}
}
if (rowValue.length() > 0 && num>=1) {
lstData.add(dataRow);
rowValue.delete(0, rowValue.length() - 1);
}else{
break;
}
}
}
return lstData;
} catch (Exception e) {
String info = "analysisXlsExcel出错";
logger.error(info,e);
}
return lstData;
}