高级excel导入
场景描述
是在原前端excel导入组件的基础上,拓展后端Excel导入能力,
拓展的Excel导入组件:支持多工作导入、支持主从定义导入,支持导入数据集主键及主从关联外键通过配置自动生成机制
提供导入工作表列单独定义导入校验规则
提供导入工作表行上支持多校验规则
提供导入数据时增加列计算规则
提供行导入后增加服务调用能力
实现思路
使用高级Excel导入组件,从市场中下载组件,下载后放在高级分类中,页面中引入组件,配置对应组件属性及事件调用提供的操作即可
实现步骤
1. 从市场下载高级excel导入组件
- 该组件是服务组件,引入后会提示重启控制台,根据提示确定重启即可
组件下载后,在组件的高级分类中显示
2. 创建高级Excel导入服务请求
在服务中创建服务并新建请求,请求类型通过下拉选择“excel高级/Excel导入”,并设置请求名称及显示名称、描述即可
完成配置后显示如下
- 如导入数据集中字段列值需要从前端页面中获取,那么在请求参数中添加参数即可,之后在工作表列中设置字段对应参数值,并在组件调用时设置参数导入
3. 配置工作表导入参数属性
点击处理逻辑中“设置”按钮打开导入请求配置页面
默认打开只有一个工作表设置项,如要导入多个工作表数据,则点击右侧+号添加工作表,如主从数据集导入情况,需要添加多个工作表,即对应Excel表中的不同的sheet页内容
请求配置页面属性说明
- 工作表名:默认工作表一,可自定义工作表名称
- 类型:同构工作表(所有工作表使用相同定义),工作表使用不同定义,如主从情况选择普通工作表
- 表头行数:默认1,对应Excel表列名称所在的行
- 列头行数:当表头标题有合并列情况时设置
- 数据表:选择要导入数据的表
- 导入模式:增量模式:对已有字段列中数据保持不变,对其他列没有的列进行添加;覆盖模式:覆盖已有的全部数据
- 错误回滚:开启后,当导入数据不满足条件时,比如导入字段值超过数据集字段长度时,整个Excel表中的数据都不会导入,反之,只导入满足条件的(注:错误回滚不作用于规则表达式)
- 行校验规则:可以对Excel表中列设置导入规则校验,满足规则导入,否则不导入;如图
- 先在工作表列中增加要设置规则的列,如上图对“是否有效”列设置规则导入,则先在工作表列中添加列名
- 设置完成后,在规则校验的表达式中才可以选择设置,如设置“是否有效”列规则等于1的导入,则表达式中设置,这样设置后在导入时只会导入满足条件的数据,不满足校验则不导入
- 先在工作表列中增加要设置规则的列,如上图对“是否有效”列设置规则导入,则先在工作表列中添加列名
工作表列:对Excel列与数据表列设置对应关系及设置列计算规则、校验规则、主从数据集设置外键关联关系设置(注:Excel表中的列名与数据表中列名相同时,可以不定义对应关系)
- 如图
对合计列增加计算规则,在计算规则里可直接设置合计表达式,也可以设置从前端获取的参数的值
- 导入后合计列数据自动计算生成,效果如下
主从关系导入说明
- 工作表类型设置为普通工作表
- 在主数据的工作表列中,添加主从关联查找列
- 在从工作表中,设置从表关联主的外键查找取值
- 执行导入后从表数据集的分类列,将自动填充主表ID列的值,效果如下
- 工作表类型设置为普通工作表
行合并场景导入说明
- 如图Excel中对行进行合并
- 导入服务设置如下即可导入
- 效果如下
列合并场景导入说明
- 如图Excel中对列进行合并,并且列名称有重复情况
- 导入服务设置如下,需要对列名称使用竖线 | 分割并进行字段映射
- 如图Excel中对列进行合并,并且列名称有重复情况
按某批次及排序说明
- 按Excel表数据顺序依次导入排序,需在数据集上新增批次、序号字段,,批次及序号使用提供的Excel上下文函数获取值
- 效果如图,批次是按本次导入批次自动生成,序号列可用于在页面数据集上进行排序显示
- 按Excel表数据顺序依次导入排序,需在数据集上新增批次、序号字段,,批次及序号使用提供的Excel上下文函数获取值
4. 页面引入组件配置属性
- 在要执行导入的页面中,添加导入服务组件、高级Excel导入组件
- 在导入组件的基础导入服务属性中,选择Excel导入服务
- 组件事件
- 导入前事件:执行导入前事件
- 导入成功事件:执行导入成功后事件
- 导入失败事件:执行导入失败后事件
5. 事件调用组件操作
- 在要执行导入操作事件中,执行提供的导入操作即可