Springboot读取excel

1. 导包

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.0.0</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.0.0</version>
</dependency>

读取方法:

File file = new File("/Users/zhongguangxi/Documents/yrt-file/kcsj.xlsx");
InputStream is = new FileInputStream(file);
Workbook workbook = new XSSFWorkbook(is);
// 如果excel的后缀是xls,说明是03版,需要用如下方法
// Workbook workbook = new HSSFWorkbook(is);
//读取工作簿的第一张表格
Sheet sheet = workbook.getSheetAt(0);
for (int i = sheet.getFirstRowNum() + 1; i <= sheet.getLastRowNum(); i++) {
    
    
	Row row = sheet.getRow(i);
	// 读取单元格内容
	getCellValue(row.getCell(1))
}

getCellValue方法:

private static String getCellValue(Cell cell) {
    
    

    if (cell == null) {
    
    
        return "";
    }

    if ("NUMERIC".equals(cell.getCellType().name())) {
    
    
        return new BigDecimal(cell.getNumericCellValue()).toString();
    } else if ("STRING".equals(cell.getCellType().name()))
        return StringUtils.trimToEmpty(cell.getStringCellValue());
    else if ("FORMULA".equals(cell.getCellType().name())) {
    
    
        return StringUtils.trimToEmpty(cell.getCellFormula());
    } else if ("BLANK".equals(cell.getCellType().name())) {
    
    
        return "";
    } else if ("BOOLEAN".equals(cell.getCellType().name())) {
    
    
        return String.valueOf(cell.getBooleanCellValue());
    } else if ("ERROR".equals(cell.getCellType().name())) {
    
    
        return "ERROR";
    } else {
    
    
        return cell.toString().trim();
    }
}

如果excel中的时间类型会报错,无法用getCellValue方法,需要特殊处理一下

Cell cell1 = row.getCell(13);
if (cell1 != null) {
    
    
    if (cell1.getDateCellValue()!=null) {
    
    
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String value = sdf.format(cell1.getDateCellValue());
        hmi.setOverdueDate(StringUtils.isEmpty(value) ? null : LocalDate.parse(value, DateTimeFormatter.ofPattern("yyyy-MM-dd")));
    }
}

猜你喜欢

转载自blog.csdn.net/qq32933432/article/details/121418459