# EasyExcelExportFramework **Repository Path**: zhangxiaowe/easy-excel-export-framework ## Basic Information - **Project Name**: EasyExcelExportFramework - **Description**: 基于easy-excel技术,解决业务系统数据导入导出不统一问题,简化数据导入导出功能不统一问题。只需要手动配置json文件,便可实现业务数据的导入导出,提高开发效率,降低开发成本。 项目使用到的技术有:redis, feign, spring boot。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-22 - **Last Updated**: 2025-01-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EasyExcelExportFramework #### 介绍 基于easy-excel技术,解决业务系统数据导入导出不统一问题,简化数据导入导出功能不统一问题。只需要手动配置json文件,便可实现业务数据的导入导出,提高开发效率,降低开发成本。 项目使用到的技术有:redis, feign, spring boot。 #### 引入方式 com.alibaba easyexcel 2.1.0.RELEASE #### 使用示例 ##### 在工程的静态资源目录下新建ExcelFields.json文件, 以下是示例文件: ``` [ { "model": "company", "modelName": "法人企业", "excelTemplateName": "实有单位管理-法人企业.xlsx", "importType": [ 1, 2 ], "beanName": "communityUnitCompanyServiceImpl", "fields": [ { "fieldName": "*单位名称", "fieldEnName": "unitName", "index": 0, "width": 20, "color": "RED", "rules": [ { "type": 0, "info": "常规字符长度校验", "maxLength": 50, "minLength": 0, "msg": "单位名称长度过长,不能超过50个字符" }, { "type": 4, "info": "不为空校验", "msg": "单位名称未填写" } ] }, { "fieldName": "*统一社会信用代码", "fieldEnName": "unifiedSocialCreditCode", "index": 1, "width": 20, "color": "RED", "rules": [ { "type": 0, "info": "常规字符长度校验", "maxLength": 18, "minLength": 0, "msg": "统一社会信用代码长度过长" }, { "type": 4, "info": "不为空校验", "msg": "红色列未填写" }, { "type": 6, "info": "业务校验", "businessRule": "unique", "msg": "统一社会信用代码不唯一", "checkBean": { "beanName": "unitExcelCheckService", "checkMethod": "checkCompanyUscc" } } ] }, { "fieldName": "*场所类型(“用/划分”)", "fieldEnName": "placeType", "index": 2, "width": 20, "color": "RED", "rules": [ { "type": 2, "info": "字典值校验", "code": "PLACE_TYPE", "msg": "场所类型错误" }, { "type": 4, "info": "不为空校验", "msg": "场所类型未填写" } ] }, { "fieldName": "*标准地址", "fieldEnName": "standardAddressCode", "index": 3, "width": 20, "color": "RED", "rules": [ { "type": 0, "info": "常规字符长度校验", "maxLength": 128, "minLength": 0, "msg": "详细地址长度过长,不能超过128个字符" }, { "type": 4, "info": "不为空校验", "msg": "详细地址未填写" }, { "type": 6, "info": "业务校验", "businessRule": "exist", "msg": "标准地址不存在", "checkBean": { "beanName": "unitExcelCheckService", "checkMethod": "checkAddressExist" } } ] }, { "fieldName": "企业类别", "fieldEnName": "businessType", "index": 4, "width": 20, "rules": [ { "type": 2, "info": "字典值校验", "code": "ENTERPRISE_TYPE", "msg": "企业类别错误" } ] }, { "fieldName": "证件号码", "fieldEnName": "certificateNum", "index": 22, "width": 20, "rules": [ { "type": 0, "info": "常规字符长度校验", "maxLength": 22, "minLength": 0, "msg": "证件号码长度过长,不能超过22个字符" } ] }, { "fieldName": "法人代表联系方式", "fieldEnName": "legalRepresentativePhone", "index": 23, "width": 20, "rules": [ { "type": 1, "info": "正则校验", "val":["0?(13|14|15|18|17)[0-9]{9}","[0-9-()()]{7,18}"], "msg": "法人代表联系方式格式错误" } ] } ] } ] ``` ##### 定义excel模板: 在服务的静态资源目录下新建excel模板,模板表头字段中文名和json文件中定义的字段中文名顺序和名称保持一致。 ##### 调用文件操作接口: 在CommonExcelController类中提供了文件操作的接口: |接口名称|路径|功能说明| |---|---|---| |文件上传|/common/excel/import|完成导入的excel文件的数据读取,规则校验| |下载校验文件|/common/excel/checkExcel|下载校验文件,包括失败的文件信息| |保存入库|/common/excel/storage|把校验通过的文件保存入库| |取消excel导入|/common/excel/cancelUpload|会删除redis中校验通过的数据| |取消excel导入|/common/excel/cancel|重置此次导入任务的标识位| |模板下载|/common/excel/template|下载excel模板| |检查导入导出进度|/common/excel/progress|检查校验,导出,导入进度|