easyPOI批量上传Excel数据

使用环境 :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;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值