使用环境 :springBoot
导入坐标
<!--EXCEL-->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>3.1.0</version>
</dependency>
controller
import bt.cloud.common.core.domain.R;
import bt.cloud.litigation.service.PetitionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@RestController
@RequestMapping("/litigation")
public class PetitionController {
@Autowired
private PetitionService petitionService;
@PostMapping("/upload")
public R importExcel(@RequestParam("file") MultipartFile file)throws Exception{
return petitionService.importExcel(file);
}
}
service
import bt.cloud.common.core.domain.R;
import org.springframework.web.multipart.MultipartFile;
public interface PetitionService {
/**
*
* @param file
* @return
* @throws Exception
*/
R importExcel(MultipartFile file)throws Exception;
}
service
import bt.cloud.common.core.domain.R;
import bt.cloud.litigation.mapper.PetitionMapper;
import bt.cloud.litigation.service.PetitionService;
import bt.cloud.litigation.vo.excel.Petition;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@Service
public class PetitionServiceImpl implements PetitionService {
@Autowired
PetitionMapper petitionMapper;
@Override
@Transactional
public R importExcel(MultipartFile file) throws Exception {
ImportParams params = new ImportParams();
params.setHeadRows(1);
List<Petition> result = ExcelImportUtil.importExcel(file.getInputStream(),
Petition.class, params);
for (Petition petition : result) {
System.out.println(petition);
petitionMapper.insert(petition);
}
return R.ok();
}
}
mapper
@Mapper
public interface PetitionMapper extends EasyBaseMapper<Petition> {
}
扩展mapper
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
public interface EasyBaseMapper<T> extends BaseMapper<T> {
/**
* 批量插入 仅适用于mysql
* @param entityList 实体列表
* @return 影响行数
*/
Integer insertBatchSomeColumn(List<T> entityList);
}
实体类
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("bt_petition_letter")
public class Petition {
// @Excel(name = "id")
private int id;
@Excel(name = "信访事项编号")
private String number;
@Excel(name = "信访入口", replace = {"来电_0", "网上投诉_1", "领导信箱_2", "网上咨询_3", "来信_4", "网上举报_5", "来访_6", "网上建议_7", "网上纠错_8"})
private int entrance;
@Excel(name = "姓名")
private String name;
@Excel(name = "问题属地")
private String possession;
@Excel(name = "概况")
private String generalize;
@Excel(name = "登记单位")
private String unit;
@Excel(name = "责任单位满意度")
private String satisfaction;
@Excel(name = "办理单位")
private String manage;
@Excel(name = "人数")
private int people;
@Excel(name = "初重件标志", replace = {"初件_0", "重件_1"})
private int sign;
@Excel(name = "是否越级访", replace = {"否_0", "是_1"})
private int grade;
@Excel(name = "是否联名信", replace = {"否_0", "是_1"})
private int jointly;
@Excel(name = "是否集体访", replace = {"否_0", "是_1"})
private int collective;
@Excel(name = "扬言标志", replace = {"否_0", "是_1"})
private int threaten;
@Excel(name = "登记时间")
private String register;
@Excel(name = "信访目的", replace = {"求决_0", "意见建议_1", "申诉_2", "咨询_3", "揭发控告_4", "其他_5"})
private int purpose;
@Excel(name = "内容分类")
private String classify;
@Excel(name = "答复意见内容")
private String answer;
@Excel(name = "信访事项状态", replace = {"不予受理_0", "已作出处理意见_1", "受理_2", "受理申请审查中_3", "复查办理中_4", "不再受理_5"})
private int matter;
}