public class ImportExcelUtil {
private final static String excel2003 =".xls";
private final static String excel2007 =".xlsx";
/**
* 处理上传的excel文件
*List<Object>代表每一行的数据
* */
public static List<List<Object>> getBankListByExcel(MultipartFile excelFile) throws Exception{
List<List<Object>> list = null;
//创建Excel工作薄
InputStream inputStream = excelFile.getInputStream();
Workbook work = getWorkbook(inputStream, excelFile.getOriginalFilename());
if(null == work){
throw new Exception("创建Excel工作薄为空!");
}
Sheet sheet = null;
Row row = null;
Cell cell = null;
list = new ArrayList<List<Object>>();
for (int i = 0; i < work.getNumberOfSheets(); i++) {
sheet = work.getSheetAt(i);
if(sheet==null){continue;}
for (int j = sheet.getFirstRowNum(); j <= sheet.getLastRowNum(); j++) {
row = sheet.getRow(j);
if(row==null||row.getFirstCellNum()==j){continue;}
List<Object> li = new ArrayList<Object>();
for (int y = row.getFirstCellNum(); y < row.getLastCellNum(); y++) {
cell = row.getCell(y);
if(cell != null){
cell.setCellType(Cell.CELL_TYPE_STRING);
}
cell.getStringCellValue();
li.add(cell);
}
list.add(li);
}
}
work.close();
inputStream.close();
return list;
}
//判断excel文件的格式
public static Workbook getWorkbook(InputStream inStr,String fileName) throws Exception{
Workbook wb = null;
String fileType = fileName.substring(fileName.lastIndexOf("."));
if(excel2003.equals(fileType)){
wb = new HSSFWorkbook(inStr);
}else if(excel2007.equals(fileType)){
wb = new XSSFWorkbook(inStr);
}else{
throw new Exception("解析的文件格式有误!");
}
return wb;
}
}