SpringBoot2.X + EasyExcel(76)

官網:EasyExcel

其他簡單Excel框架:ExcelUtil

1、pom依賴

<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>easyexcel</artifactId>
   <version>2.2.6</version>
</dependency>

2、實體類

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    @ExcelProperty(value = "姓名")
    private String userName;

    @NumberFormat("#.##%")
    @ExcelProperty(value = "體脂率")
    private double fat;

    @ExcelProperty(value = "編寫日期")
    private String birthday;
}

3、導出數據

@GetMapping(value = "/write")
public String write(){
    String url = "/Users/mac/Desktop/76521.xlsx";
    List<User> list = Arrays.asList(
            new User("劉飛",0.2512,"2002-01-12"),
            new User("張羽",0.2345,"2002-06-22"),
            new User("關備",0.1812,"2002-04-03")
    );

    EasyExcel.write(url,User.class).sheet("Sheet").doWrite(list);
    return "OK";
}

測試如下:

4、導入

public class DataListener extends AnalysisEventListener<User> {

    List<User> list = new ArrayList<>();

    /**
     * 這個每一條數據解析都會來調用
     * @param user excel對應一個對象
     * @param analysisContext 上下文
     */
    @Override
    public void invoke(User user, AnalysisContext analysisContext) {
        list.add(user);
    }

    /**
     * 所有數據解析完成了 最終會調用
     * @param analysisContext 上下文
     */
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        System.out.println("所有數據加載完畢,在裏面將數據存儲到數據庫");
        System.out.println(JSON.toJSON(list));
    }
}

接口:

@GetMapping(value = "/read")
public String read(){
    String url = "/Users/mac/Desktop/76521.xlsx";
    EasyExcel.read(url,User.class, new DataListener()).sheet().doRead();
    return "OK";
}

測試結果:

測試OK。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章