参考链接https://www.cnblogs.com/wobuchifanqie/p/7685038.html
package com.blue.pem.client.util;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ObjectExcelRead {
/**
* @param filepath //文件路径
* @param filename //文件名
* @param startrow //开始行号
* @param startcol //开始列号
* @param sheetnum //sheet
* @return list
*/
/*读取xls文件*/
public static List<Map<Object, Object>> parse(HSSFWorkbook wb)
{
List<Map<Object, Object>> listMap = new ArrayList<Map<Object, Object>>();
List<Object> keyList = new ArrayList<Object>();
try {
HSSFSheet sheet = wb.getSheetAt(0);
int rowNum = sheet.getLastRowNum();
for (int i = 0; i < rowNum; i++)
if (i == 0) {
HSSFRow row = sheet.getRow(i);
int cellNum = row.getLastCellNum();
for (int j = 0; j < cellNum; j++) {
Object obj = getCellValue(row.getCell(j));
keyList.add(obj);
}
} else {
HSSFRow row = sheet.getRow(i);
if (checkRowNull(row) != 10)
{
Map<Object, Object> map = new HashMap<Object, Object>();
int cellNum = row.getLastCellNum();
for (int j = 0; j < cellNum; j++) {
Object obj = getCellValue(row.getCell(j));
map.put(keyList.get(j), obj);
}
listMap.add(map);
}
}
return listMap;
} catch (Exception e) {
e.printStackTrace();
}return listMap;
}
//读取xlsx数据
public static List<Map<Object, Object>> parse(XSSFWorkbook wb)
{
List<Map<Object, Object>> listMap = new ArrayList<Map<Object, Object>>();
List<Object> keyList = new ArrayList<Object>();
try {
XSSFSheet sheet= wb.getSheetAt(0);
int rowNum = sheet.getLastRowNum();
for (int i = 0; i < rowNum; i++)
if (i == 0) {
XSSFRow row = sheet.getRow(i);
int cellNum = row.getLastCellNum();
for (int j = 0; j < cellNum; j++) {
Object obj = getCellValue(row.getCell(j));
keyList.add(obj);
}
} else {
XSSFRow row = sheet.getRow(i);
if (checkRowNull(row) != 10)
{
Map<Object, Object> map = new HashMap<Object, Object>();
int cellNum = row.getLastCellNum();
for (int j = 0; j < cellNum; j++) {
Object obj = getCellValue(row.getCell(j));
map.put(keyList.get(j), obj);
}
listMap.add(map);
}
}
return listMap;
} catch (Exception e) {
e.printStackTrace();
}return listMap;
}
public static int checkRowNull(HSSFRow row)
{
int num = 0;
Iterator<?> iterator = row.iterator();
while (iterator.hasNext()) {
Cell cell = (Cell)iterator.next();
if ((cell == null) || (cell.getCellType() == 3)) {
num++;
}
}
return num;
}
public static int checkRowNull(XSSFRow row)
{
int num = 0;
Iterator<?> iterator = row.iterator();
while (iterator.hasNext()) {
Cell cell = (Cell)iterator.next();
if ((cell == null) || (cell.getCellType() == 3)) {
num++;
}
}
return num;
}
public static Object getCellValue(Cell cell) {
if ((cell == null) || (cell.getCellType() == 3)) {
return null;
}
Object obj = null;
switch (cell.getCellType()) {
case 1:
obj = cell.getStringCellValue();
break;
case 0:
obj = Double.valueOf(cell.getNumericCellValue());
break;
case 2:
obj = cell.getCellFormula();
break;
case 4:
obj = Boolean.valueOf(cell.getBooleanCellValue());
break;
case 3:
}
return obj;
}