POI | EasyPoi 快速集成实现文档导入导出

一、前言

easypoi:就是在poi的基础上再次封装简化了对文档的导入导出,使用poi框架需要写一堆代码,而easypoi 可以通过简单的注解和模板 语言(熟悉的表达式语法),完成以前复杂的写法。

easypoi gitee地址:https://gitee.com/lemur/easypoi

开发指南:http://doc.wupaas.com/docs/easypoi/easypoi-1c0u4mo8p4ro8

二、快速集成easypoi

1.pom坐标的引入

start 引入 推荐


 
              cn.afterturn
              easypoi-spring-boot-starter
              4.3.0




            org.hibernate
            hibernate-validator
            5.3.6.Final


或者

 
            cn.afterturn
            easypoi-base
            3.2.0


            cn.afterturn
            easypoi-web
            3.2.0


            cn.afterturn
            easypoi-annotation
            3.2.0

        


            org.hibernate
            hibernate-validator
            5.3.6.Final

2. excel 文档映射 Bean

excel 文档 easydemo.xlsx

image.png

Bean
@Excel name 对应文档列头名 format 时间格式
@NotNull 非null 校验使用 message 错误消息
@Pattern(regexp = "[\u4E00-\u9FA5]*", message = "不是中文") 正则表达式校验

@Data
public class ExcelDemoInfo {

    @Excel(name = "主键")
    @NotNull(message = "主键不能为null")
    private Integer id;

    @Excel(name = "描述")
    @Pattern(regexp = "[\u4E00-\u9FA5]*", message = "不是中文")
    private String desc;

    @Excel(name="时间",format="yyyy/MM/dd" )
    private Date time;
}

校验结果返回值
校验结果返回值 接收 实现IExcelModel 集成实现的bean 也可以写道一块

public class ExcelVerifyEntityOfMode extends ExcelDemoInfo implements IExcelModel {

    private String errorMsg;

    @Override
    public String getErrorMsg() {
        return errorMsg;
    }

    @Override
    public void setErrorMsg(String errorMsg) {
        this.errorMsg = errorMsg;
    }

}

3. test

导入

 ExcelImportResult objects = ExcelImportUtil.importExcelMore(fileInputStream, ExcelVerifyEntityOfMode.class, params)

导出

ExcelExportUtil.exportExcel(params, ExcelDemoInfo.class, list);
@Slf4j
@SpringBootTest
class EasypoiDemoApplicationTests {


    @Test
    void contextLoads() throws Exception {
        FileInputStream fileInputStream = new FileInputStream("D://easydemo.xlsx");

        ImportParams params = new ImportParams();
        //需要校验的方法
        params.setNeedVerify(true);
        ExcelImportResult objects = ExcelImportUtil.importExcelMore(fileInputStream, ExcelVerifyEntityOfMode.class, params);
        
        log.info("校验结果 true:失败 false:成功  verifyFail:{} ", objects.isVerifyFail());
        log.info("校验成功 集合类 :{}", objects.getList());
        log.info("校验失败 集合类 :{}", objects.getFailList());
        
        for (ExcelVerifyEntityOfMode excelVerifyEntityOfMode : objects.getFailList()) {
            log.info("校验失败原因 errorMsg:{}", excelVerifyEntityOfMode.getErrorMsg());
        }
    }

    /**
     * 导出
     *
     * @throws Exception
     */
    @Test
    void exportExcelTest() throws Exception {
        List list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            ExcelDemoInfo excelDemoInfo = new ExcelDemoInfo();
            excelDemoInfo.setId(i);
            excelDemoInfo.setDesc("desc" + i);
            excelDemoInfo.setTime(new Date());
            list.add(excelDemoInfo);
        }

        ExportParams params = new ExportParams();
        params.setTitle("测试");
        params.setSheetName("测试1");
        //需要校验的方法
        Workbook workbook = ExcelExportUtil.exportExcel(params, ExcelDemoInfo.class, list);

        FileOutputStream fos = new FileOutputStream("D:/测试.xlsx");
        workbook.write(fos);
        fos.close();
    }


}

三、总结

我只是写了一个大概的 导入到处 具体的可以查看 开发指南

开发指南:http://doc.wupaas.com/docs/easypoi/easypoi-1c0u4mo8p4ro8

有疑问可以评论留言哦 .共同学习,共同进步

点个关注吧

你可能感兴趣的:(POI | EasyPoi 快速集成实现文档导入导出)