public static List<List<String>> readExcel(MultipartFile files){
List<List<String>> aList = new ArrayList<>();
try{
InputStream inputStream = files.getInputStream();
Workbook workbook = null;
if(files.getOriginalFilename().endsWith(".xlsx")){
workbook = new XSSFWorkbook(inputStream);
}else if(files.getOriginalFilename().endsWith(".xls")){
workbook = new HSSFWorkbook(inputStream);
}else{
throw new HussarException("文件格式不正确");
}
int numberOfSheets = workbook.getNumberOfSheets();
Sheet Sheet = workbook.getSheetAt(numberOfSheets-1);
for (int rowNum = 5; rowNum <= Sheet.getLastRowNum(); rowNum++) {
Row Row = Sheet.getRow(rowNum);
if (Row != null) {
//判断这行记录是否存在
if (Row.getLastCellNum() < 1 || "".equals(Row.getCell(0))) {
continue;
}
List<String> rowList = new ArrayList<>();
for(int colNum=0;colNum<Row.getLastCellNum();colNum++) {
//单元格如果合并时,取前一列的合并列值
if(Row.getCell(colNum).toString().isEmpty()) {
String merge = aList.size() > 0 ?
aList.get(aList.size()-1).get(colNum) : "";
rowList.add(colNum, merge);
}else{
rowList.add(colNum, Row.getCell(colNum).toString());
}
}
aList.add(rowList);
}
}
}catch(IOException e){
e.printStackTrace();
}
return aList;
}
前端页面上传的文件格式为 MultipartFile