springboot嵌入导入导出功能 Excel-Boot

很多人还在使用原始的poi和jxl进行excel的导入导出工作,这个过程不仅复杂而且麻烦,目前有一个Excel-Boot可以直接嵌入到springboot中进行开发,使用比较方便快捷

大家可以直接搜索Excel-Boot里面有开源的源码

下面来说说如何嵌入Excel-Boot

1.pom文件加入依赖


	io.github.magic-core
	excel-boot
	2.0

2.在需要用来做导入导出的dto或者model类上面加上2个注解:

@ExportField(columnName = "巡检设备名称"):columnName指在导出excel表表头字段名称,也还有其他属性可以直接参考源码;
@ImportField(required = true):required=true指导入的时候该字段必须有值;

上面2个注解就是有关导入导出的,需要哪个就在该类上面加上哪个注解,如下图:

 

3.在controller下写入api方法:

导入:

  @RequestMapping("/exportResponse")
    public void exportResponse(HttpServletResponse httpServletResponse) {
        ParamEntity queryQaram = new ParamEntity();
        ExcelBoot.ExportBuilder(httpServletResponse, "Excel文件名", UserEntity.class).exportResponse(queryQaram,
                new ExportFunction() {
                    /**
                     * @param queryQaram 查询条件对象
                     * @param pageNum    当前页数,从1开始
                     * @param pageSize   每页条数,默认3000
                     * @return
                     */
                    @Override
                    public List pageQuery(ParamEntity queryQaram, int pageNum, int pageSize) {

                        //分页查询操作
                        List result=dao().queryPage(queryQaram);
                        return result;
                    }

                    /**
                     * 将查询出来的每条数据进行转换
                     *
                     * @param o
                     */
                    @Override
                    public UserEntity convert(ResultEntity o) {
                        //转换操作
                        return new UserEntity();
                    }
                });
    }

springboot嵌入导入导出功能 Excel-Boot_第1张图片

导出:

  @RequestMapping("/importExcel")
    public void importExcel() throws IOException {
        ExcelBoot.ImportBuilder(new FileInputStream(new File("C:\\Users\\导入Excel文件.xlsx")),  UserEntity.class)
                .importExcel(new ImportFunction() {

                    /**
                     * @param sheetIndex 当前执行的Sheet的索引, 从1开始
                     * @param rowIndex 当前执行的行数, 从1开始
                     * @param userEntity Excel行数据的实体
                     */
                    @Override
                    public void onProcess(int sheetIndex,  int rowIndex,  UserEntity userEntity) {
                        //对每条数据自定义校验以及操作
                        //分页插入:当读取行数到达用户自定义条数执行插入数据库操作
                    }

                    /**
                     * @param errorEntity 错误信息实体
                     */
                    @Override
                    public void onError(ErrorEntity errorEntity) {
                        //操作每条数据非空和正则校验后的错误信息
                    }
                });
    }

 

springboot嵌入导入导出功能 Excel-Boot_第2张图片

到这里导入导出就做完了

 

你可能感兴趣的:(java,Excel)