需要的依赖:
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-spring-boot-starter</artifactId>
<version>4.1.1</version>
</dependency>
根据需要导入的Excel建接收的视图对象
model:
@Data
@ExcelTarget(value = "CompanyImportVo")
public class CompanyImportVo implements Serializable {
/**
* 行号
*/
@Excel(name = "行号")
private Integer lineNumber;
/**
* 公司名称
*/
@Excel(name="客户名称(必填)")
private String name;
/**
* 统一信用代码
*/
@Excel(name="统一社会信用代码")
private String creditCode;
/**
* 公司简称
*/
@Excel(name="公司简称")
private String shortName;
/**
* 英文名称
*/
@Excel(name="客户名称(英文)")
private String englishName;
/**
* 法人
*/
@Excel(name = "法人")
private String legalPerson;
/**
* 经营状态(字典)
*/
private String statusId;
/**
* 经营状态编码
*/
private String statusCode;
/**
* 经营状态
*/
@Excel(name = "经营状态")
private String statusName;
/**
* 成立日期
*/
@Excel(name = "成立日期")
private String establishTime;
/**
* 客户来源(字典)
*/
private String sourceId;
/**
* 客户来源编码
*/
private String sourceCode;
/**
* 客户来源
*/
@Excel(name = "客户来源")
private String sourceName;
/**
* 公司类型(字典)
*/
private String companyTypeId;
/**
* 公司类型编码
*/
private String companyTypeCode;
/**
* 公司类型
*/
@Excel(name = "公司类型")
private String companyTypeName;
/**
* 行业分类(字典)
*/
private String industryId;
/**
* 行业分类编码
*/
private String industryCode;
/**
* 行业分类
*/
@Excel(name = "所属行业")
private String industryName;
/**
* 注册资本(万元)
*/
@Excel(name="注册资金(万元)")
private String capital;
/**
* 实缴资本(万元)
*/
@Excel(name = "实缴资金(万元)")
private String realCapital;
/**
* 营业额范围(字典)
*/
private String revenueId;
/**
* 营业额范围编码
*/
private String revenueCode;
/**
* 营业额范围
*/
@Excel(name = "营业额")
private String revenueName;
/**
* 经营范围
*/
@Excel(name="经营范围")
private String businessRange;
/**
* 办公传真
*/
@Excel(name="办公传真")
private String fax;
/**
* 电子邮箱
*/
@Excel(name="邮箱")
private String email;
/**
* 公司网址
*/
@Excel(name="网站")
private String website;
}
service:
R importCompanyPublic(MultipartFile file) throws Exception;
serviceImpl:
@Override
public R importCompanyPublic(MultipartFile file) throws Exception {
List<CompanyImportVo> list = ExcelImportUtil.importExcel(file.getInputStream(), CompanyImportVo.class, params);
Company company = new Company();
BeanUtils.copyProperties(companyImportVo, company);
for (CompanyImportVo companyImportVo: list ) {
companyImportVo.setSubmitStatus(CompanyStatusEnum.SAVED.getValue());
companyImportVo.setSubmitStatusName(CompanyStatusEnum.SAVED.getName());
companyMapper.insert(company);
}
return R.ok();
}
controller:
@PostMapping(value = "/import")
@ApiOperation(httpMethod = "POST", value = "客户公池导入")
public R importCompanyPublic(@ApiParam("excel文件") @RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
return R.fail("文件为空");
}
try {
return companyService.importCompanyPublic(file);
} catch (Exception e) {
log.error(e.getMessage(), e);
return R.fail(e.getMessage());
}
}