SpringBoot之poi导入Excel

文章展示了如何在Java中通过ApachePOI库读取xlsx格式的Excel文件,从上传的MultipartFile对象中获取文件流,遍历工作表中的行和单元格,提取数据并存储到EhrZoningCode实体类中,准备进行数据库入库操作。

pom.xml导入依赖

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

导入xlsx结尾的Excel示例代码

    @PostMapping("importExcel")
    public void importExcel(@RequestParam("file") MultipartFile file) throws IOException {
        List<EhrZoningCode> ehrZoningCodes = new ArrayList<>();
        XSSFWorkbook wb = new XSSFWorkbook(file.getInputStream());//获取上传的文件流
        XSSFSheet sheet = wb.getSheetAt(0);//根据页面index 获取sheet页
        int lastRowNum = sheet.getLastRowNum();
        for (int i = 1; i <= lastRowNum; i++) {
            XSSFRow row = sheet.getRow(i);
            if (row != null) {
                List<String> list = new ArrayList<>();
                for (Cell cell : row) {
                    if (cell != null) {
                        cell.setCellType(Cell.CELL_TYPE_STRING);
                        String value = cell.getStringCellValue();
                        if (value != null && !"".equals(value.trim()))
                            list.add(value);
                    }
                }
                if (!list.isEmpty()) {
                    EhrZoningCode ehrZoningCode = new EhrZoningCode();
                    ehrZoningCode.setZoningCode(row.getCell(0).getStringCellValue());
                    ehrZoningCode.setZoningName(row.getCell(1).getStringCellValue());
                    ehrZoningCode.setZoningLevel(row.getCell(2).getStringCellValue());
                    ehrZoningCode.setZoningStatus("1");
                    ehrZoningCodes.add(ehrZoningCode);
                    log.info("list:{}", ehrZoningCodes);
                }
            }
        }
        if (!ehrZoningCodes.isEmpty()) {
            //入库
        }
    }

实体类

@Data
public class EhrZoningCode {

    private Long zoningId; //id

    private String zoningCode; //区域码

    private String zoningName; //区域名称

    private String zoningLevel; //区域层级

    private String zoningType; //区域类型

    private String zoningStatus; //区域状态

    private String pyCode; //区域拼音
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值