美文网首页
springboot和easypoi数据导入demo

springboot和easypoi数据导入demo

作者: TinyThing | 来源:发表于2021-03-09 16:24 被阅读0次

    直接上代码:

    maven依赖

            <dependency>
                <groupId>cn.afterturn</groupId>
                <artifactId>easypoi-spring-boot-starter</artifactId>
                <version>4.2.0</version>
            </dependency>
    

    controller:

        @PostMapping("detail/import")
        @ApiOperation("导入作业明细,返回id 列表")
        public R<List<StandardDetail>> importDetail(@RequestPart MultipartFile file) throws Exception {
            //导入的基本配置
            ImportParams params = new ImportParams();
            //代表导入这里是需要验证的(根据字段上的注解校验)
            params.setNeedVerify(true);
            //使用框架自身导入工具
            ExcelImportResult<StandardDetailDto> result =
                    ExcelImportUtil.importExcelMore(file.getInputStream(), StandardDetailDto.class, params);
            //导入成功的数据
            List<StandardDetailDto> list = result.getList();
            //失败结果集
            List<StandardDetailDto> failList = result.getFailList();
    
            boolean verifyFail = result.isVerifyFail();
            if (verifyFail) {
                String message = generateFailMessage(failList);
                return R.failed(message);
            }
    
            List<StandardDetail> detailList = planStandardService.saveDetailBatch(list);
            return R.ok(detailList);
        }
    
    
    

    DTO类型

    /**
     * dto,注意实现 IExcelModel, IExcelDataModel 接口,用于异常输出
     */
    @Data
    @ApiModel(description = "dto")
    public class StandardDetailDto implements IExcelModel, IExcelDataModel {
    
        private Long id;
    
        /**
         * 名称
         */
        @ApiModelProperty("名称")
        @NotBlank
        @Pattern(regexp = NAME_REGEX, message = NAME_ERROR)
        @Excel(name = "作业明细名称")
        private String name;
    
        /**
         * 内容
         */
        @ApiModelProperty("内容, 200字以内")
        @NotBlank
        @Size(max = 200)
        @Excel(name = "内容事项")
        private String content;
    
        /**
         * 是否上传照片,0不上传,1上传
         */
        @ApiModelProperty("是否上传照片,0不上传,1上传")
        @Excel(name = "是否上传照片", replace = {"是_1", "否_0"})
        @NotNull
        private Integer imageType;
    
        private String errorMsg;
    
        private Integer rowNum;
    }
    

    相关文章

      网友评论

          本文标题:springboot和easypoi数据导入demo

          本文链接:https://www.haomeiwen.com/subject/aslbqltx.html