springBoot将excel文件数据导入数据库

2023-01-01 08:26:54

导入依赖

<!-- easypoi excel导入导出-->
<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-base</artifactId>
    <version>4.3.0</version>
</dependency>

实体类

package com.atxinxin.hospital.entity;

/**
 * 医院设置表
 *
 * @author xinxin 2022-10-12
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@TableName("hospital_set")
public class HospitalSetPO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */
    @TableId(value = "id", type = IdType.AUTO)
    @Excel(name = "主键",orderNum = "1")
    private Long id;

    /**
     * 医院名称
     */
    @Excel(name = "医院名称",orderNum = "2")
    private String hosname;

    /**
     * 医院编号
     */
    @Excel(name = "医院编号",orderNum = "3")
    private String hoscode;

    /**
     * api基础路径
     */
    @Excel(name = "api基础路径",orderNum = "4")
    private String apiUrl;

    /**
     * 签名秘钥
     */
    @Excel(name = "签名秘钥",orderNum = "5")
    private String signKey;

    /**
     * 联系人
     */
    @Excel(name = "联系人",orderNum = "6")
    private String contactsName;

    /**
     * 联系人手机
     */
    @Excel(name = "联系人手机",orderNum = "7")
    private String contactsPhone;

    /**
     * 状态
     */
    private Byte status;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime updateTime;

    /**
     * 逻辑删除(1:已删除,0:未删除)
     */
    private Byte isDeleted;
}

controller层

package com.atxinxin.hospital.controller;

/**
 * 医院设置表 前端控制器
 *
 * @author xinxin 2022-10-12
 */
@Api(tags = "医院设置表相关接口")
@RestController
@RequestMapping("/hospital/hospitalSet")
public class HospitalSetController {

    @Autowired
    private HospitalSetService hospitalSetService;


    @ApiOperation("医院设置导入")
    @PostMapping(value = "/importExcel")
    public void importExcel(@RequestParam("file") MultipartFile file) throws Exception {

        hospitalSetService.importExcel(file);
    }

}

service层

package com.atxinxin.hospital.service;

/**
 * @author weixinxin
 */
@Service
@Slf4j
public class HospitalSetService {

    @Autowired
    private HospitalSetMapper hospitalSetMapper;

    /**
     * 导入
     *
     * @param file 文件
     */
    public void importExcel(MultipartFile file) throws Exception {

        //输入流
        InputStream inputStream = file.getInputStream();
        
        //importparams参数设置
        ImportParams params = new ImportParams();
        params.setTitleRows(0);
        params.setHeadRows(1);
        params.setStartRows(0);
        params.setStartSheetIndex(0);
        params.setVerifyHandler(null);
        
        //ExcelImportUtil工具
        List<HospitalSetPO> list = ExcelImportUtil.importExcel(inputStream, HospitalSetPO.class, params);

        if (com.baomidou.mybatisplus.core.toolkit.CollectionUtils.isEmpty(list)) {
            log.error("导入信息不能为空");
        }

        //遍历list集合写入数据
        list.stream().forEach(hospitalSetPO -> {
            hospitalSetPO.setCreateTime(LocalDateTime.now());
            hospitalSetPO.setUpdateTime(LocalDateTime.now());
            hospitalSetMapper.insert(hospitalSetPO);
        });
    }
}

Mapper层

package com.atxinxin.hospital.mapper;

/**
 * 医院设置表 Mapper 接口
 *
 * @author xinxin 2022-10-12
 */
@Mapper
public interface HospitalSetMapper extends BaseMapper<HospitalSetPO> {

}

IService层

package com.atxinxin.hospital.service;


/**
 * 医院设置表 服务类
 *
 * @author weixinxin 2022-10-12
 */
public interface IHospitalSetService extends IService<HospitalSetPO> {

}

IServiceImpl层

package com.atxinxin.hospital.service.impl;

/**
 * 医院设置表 服务实现类
 *
 * @author weixinxin 2022-10-12
 */
@Service
public class HospitalSetServiceImpl extends ServiceImpl<HospitalSetMapper, HospitalSetPO> implements IHospitalSetService {

}

 

 

  • 作者:XIN XIN WEI
  • 原文链接:https://blog.csdn.net/qq_44033725/article/details/127316962
    更新时间:2023-01-01 08:26:54