/**
*
* @param file
* @return List<List<Map<String, Object>>> map key:为表列名 value:为
* @throws Exception
*/
public List<Map<String, Object>> parseExcel(File file) throws Exception {
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(file));
// 在Excel文档中,第一张工作表的缺省索引是0
HSSFSheet sheet = workbook.getSheetAt(0);
// 获取到Excel文件中的所有行数
int rows = sheet.getPhysicalNumberOfRows();
List<Map<String, Object>> valueList = new ArrayList<Map<String, Object>>();
List<String> columnList = new ArrayList<String>();
// 遍历行
for (int i = 0; i < rows; i++) {
List<Map<String, Object>> rowList = new ArrayList<Map<String, Object>>();
// 读取左上端单元格
HSSFRow row = sheet.getRow(i);
// 行不为空
if (row != null) {
// 获取到Excel文件中的所有的列
int cells = row.getPhysicalNumberOfCells();
String value = "";
// 遍历列
for (int j = 0; j < cells; j++) {
// 获取到列的值
HSSFCell cell = row.getCell(j);
if (cell != null) {
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_FORMULA:
break;
case HSSFCell.CELL_TYPE_NUMERIC:
value += (cell.getNumericCellValue() + ",").trim();
break;
case HSSFCell.CELL_TYPE_STRING:
value += (cell.getStringCellValue() + ",").trim();
break;
default:
value += "0";
break;
}
}
}
Map<String, Object> map = new HashMap<String, Object>();
String[] val = value.split(",");
if (val != null && val.length > 0) {
for (int index = 0; index < val.length; index++) {
if (i == 0) {// 取列名
columnList.add(val[index]);
} else if (i > 0) {// 塞值
map.put(columnList.get(index), val[index]);
}
}
if (i > 0) {
valueList.add(map);
}
}
}
}
return valueList;
}
批量导入excel入库
最新推荐文章于 2022-08-10 15:57:20 发布