Springboot读取excel工具类

public List<DeviceInfo> readXls() throws IOException {
InputStream is = new FileInputStream(EXCEL_PATH);
XSSFWorkbook hssfWorkbook = new XSSFWorkbook(is);
DeviceInfo student = null;
List<DeviceInfo> list = new ArrayList<DeviceInfo>();
// 循环工作表Sheet
for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {
XSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
if (hssfSheet == null) {
continue;
}
// 循环行Row
for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
XSSFRow hssfRow = hssfSheet.getRow(rowNum);
if(CheckRowNull(hssfRow)){
continue;
}
if (hssfRow != null) {
student = new DeviceInfo();
XSSFCell no = hssfRow.getCell(0);
no.setCellType(no.CELL_TYPE_STRING);
XSSFCell name = hssfRow.getCell(3);
XSSFCell longitude = hssfRow.getCell(1);
XSSFCell latitude = hssfRow.getCell(2);
student.setDeviceId(getValue(no));
student.setDeviceName(getValue(name));
student.setLongitude(new BigDecimal(getValue(longitude)));
student.setLatitude(new BigDecimal(getValue(latitude)));
list.add(student);
}
}
}
return list;
}

@SuppressWarnings("static-access")
private String getValue(XSSFCell hssfCell) {
if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {
// 返回布尔类型的值
return String.valueOf(hssfCell.getBooleanCellValue());
} else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {
// 返回数值类型的值
return String.valueOf(hssfCell.getNumericCellValue());
} else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_FORMULA) {
return String.valueOf(hssfCell.getCellFormula());
} else {
// 返回字符串类型的值
return String.valueOf(hssfCell.getStringCellValue());
}
}

//判断行为空
private boolean CheckRowNull(XSSFRow hssfRow){
Iterator<Cell> cellItr =hssfRow.iterator();
while(cellItr.hasNext()){
Cell c =cellItr.next();
if(c != null && c.getCellType() !=XSSFCell.CELL_TYPE_BLANK){
return false;
}
}
return true;
}

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。更多免费资源在http://www.gitweixin.com/?p=2627

发表评论

邮箱地址不会被公开。 必填项已用*标注