EasyPoi框架實現Excel表格匯入

自我革命發表於2020-12-03

我也是第一次接觸excel表格相關的需求,在這裡做一個總結:Excel表格匯入

第一步:新增依賴

<!--easypoi-->
    <dependency>
      <groupId>cn.afterturn</groupId>
      <artifactId>easypoi-base</artifactId>
      <version>${easypoi.version}</version>
    </dependency>
    <dependency>
      <groupId>cn.afterturn</groupId>
      <artifactId>easypoi-web</artifactId>
      <version>${easypoi.version}</version>
    </dependency>
    <dependency>
      <groupId>cn.afterturn</groupId>
      <artifactId>easypoi-annotation</artifactId>
      <version>${easypoi.version}</version>
    </dependency>

第二步:準備 需要匯入的Excel表格(和相應的實體類對應)

1、實體類

@ExcelTarget("學生資訊表")
public class BasStudent implements Serializable {
    private BasUser user;
    @Excel(name="學號")
    private String number;
    @Excel(name="姓名")
    private String name;
    @Excel(name="性別")
    private String sex;
    @Excel(name="學院")
    private String academy;
    @Excel(name="專業")
    private String major;

    public BasUser getUser() {
        return user;
    }

    public void setUser(BasUser user) {
        this.user = user;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAcademy() {
        return academy;
    }

    public void setAcademy(String academy) {
        this.academy = academy;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    @Override
    public String toString() {
        return "BasStudent{" +
                "user=" + user +
                ", number='" + number + '\'' +
                ", name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", academy='" + academy + '\'' +
                ", major='" + major + '\'' +
                '}';
    }
}

注:@Excel是指定實體類屬性對應excel表格裡的列名
2、excel表格
在這裡插入圖片描述

三、後臺介面

注:1、後臺接收的檔案型別是MultipartFile ,這裡可使用它的輸入流讀取
2、ExcelImportUtil.importExcel是框架提供的匯入工具類

@RequestMapping(value ="/easypoiTest" ,method = RequestMethod.POST)
    public void easypoiTest(@RequestParam("file") MultipartFile multipartFile) throws Exception {
        //表格引數資訊
        ImportParams importParams = new ImportParams();
        //excel頭部佔一行
        importParams.setHeadRows(1);
        //獲取Excel表格的學生資料封裝成物件
        List<BasStudent> stuList = ExcelImportUtil.importExcel(multipartFile.getInputStream(), BasStudent.class,importParams);
        //業務(為班級新增學生)
        for(BasStudent student: stuList){
            System.out.println(student);
        }

    }

四、介面測試

介面測試推薦postman,好處:百度
在這裡插入圖片描述

在這裡插入圖片描述
測試結果:介面獲取到excel的資訊對映成實體物件在這裡插入圖片描述

五、總結

      奧力給,日後經常更新,值得關注!!!

相關文章