2、Excel补录模板管理:需要上传Excel文件(xlsx和xls格式)或绑定电子表格作为补录模板,以便补录用户可以下载模板并录入数据。
3、导入规则设置:包括基本设置、列设置、扩展设置。
4、参数布局设置:可以对参数的位置进行调整。
锚 | ||||
---|---|---|---|---|
|
数据源:要导入的目标库,需要在系统管理中先创建关系数据源
回写表:要导入的目标表,需要在关系数据源中通过数据库表管理将回写表添加到系统中
Sheet名:Excel文件中要导入Sheet名称,区分英文大小写
起始行:Excel文件开始导入的行,包含设置的值
- 行号:通过设置行号的形式设置起始行
- 出现字符:通过设置Excel中指定列开始出现指定字符设置起始行
结束行:Excel文件结束导入的行,设置的结束行也会执行导入,缺省直到Excel结束
- 行号:通过设置行号的形式设置结束行
- 出现字符:通过设置Excel中指定列开始出现指定字符设置结束行
- 直到空行:遇到空行终止导入
异常处理规则:设置出现校验异常时,是回滚还是继续执行。这里的异常是指不满足Excel导入规则中的校验规则,如长度超长、类型不匹配、超值域范围、主键冲突等),并非数据库sql执行过程中产生的异常。如果是数据库异常是直接回滚并抛出错误原因给用户的。
- 回滚:当出现校验异常时,回滚整个sheet中数据的导入,并抛出碰到的第一个校验异常原因。注意:选择了回滚,异常日志中并不会记录所有的异常数据及原因,因为回滚意味着遇到第一个校验异常时,直接回滚,跳出导入该sheet。
- 继续执行:当出现校验异常时,继续执行导入下一条数据,并将这条数据写入到异常日志,供后面下载查看异常原因。
数据处理模式:设置处理数据的模式是增量还是全量。
- 增量:当选择增量时,不删除数据库中表的数据,直接在数据库表中插入需要更新的数据。
- 全量:全量就是在数据导入到数据库之前,把数据库中表的数据先清除了之后再导入。
主键冲突处理规则:指当Excel中要导入的数据与数据库中已有数据的主键重复时的处理规则,可以是执行更新操作,或者抛出主键冲突的异常信息。注意,这里的“主键”是“列设置”中用户指定的主键列,并不一定是数据库表的主键,但列设置中的“主键”也需要满足数据唯一性。
- 更新:主键重复时,更新数据
- 异常处理:主键重复时,抛出主键冲突的异常,并通过“异常处理规则”处理这个异常
列设置
字段名和字段类型:根据基本设置中的回写表结构自动读取。
是否主键:用于标识导入数据的唯一性。缺省会自动从数据库读取,但用户可以更改,例如选择学校代码、单位号作为主键。
是否允许空值:缺省会自动从数据库读取,但用户可以更改。
绑定输入:设置数据库表字段的数据来源。
- 不绑定:执行导入时,该字段不插入值
- 绑定Excel列:绑定字段与Excel中指定列数据。设置绑定列时,需要指定具体某一列
- 绑定Excel单元格:绑定Excel中指定单元格数据。设置绑定Excel单元格时,需要指定具体某行、某列对应的单元格
- 绑定参数:将字段与公共设置中定义的参数进行绑定。绑定参数后,执行导入界面会显示该参数,用户导入前需要先选择参数的值再执行导入,这样这列导入的值就是用户所选的参数值
- 使用固定值:将一个固定值插入到字段中
- 使用JAVA类:通过java类实现一个业务逻辑,并将java类的返回值插入到字段中。系统内置了唯一id和系统时间两个常用的类,用户可通过扩展包自定义java类,详细请见“演示绑定自定义java类的导入模板”
唯一id:41位长的唯一id
系统时间:执行导入时的系统时间
注:绑定excel列最多到z,但实际如果更多收需要手工输入。设置项说明如下:
名称 | 说明 | ||
---|---|---|---|
数据源 | 要导入的目标库,需要在系统管理中先创建关系数据源。
| ||
回写表 | 要导入的目标表,需要在关系数据源中通过 数据库管理 将回写表添加到系统中。 | ||
Sheet名称 | Excel文件中要导入Sheet名称,区分英文大小写。 | ||
起始行 | Excel文件开始导入的行,包含设置的值。
| ||
结束行 | Excel文件结束导入的行,设置的结束行也会执行导入,缺省直到Excel结束。
| ||
异常处理规则 | 设置出现校验异常时,是回滚还是继续执行。这里的异常是指不满足Excel导入规则中的校验规则,如长度超长、类型不匹配、超值域范围、主键冲突等),并非数据库sql执行过程中产生的异常。如果是数据库异常是直接回滚并抛出错误原因给用户的。
| ||
数据处理模式 | 设置处理数据的模式是增量还是全量。
| ||
主键冲突处理规则 | 指当Excel中要导入的数据与数据库中已有数据的主键重复时的处理规则,可以是执行更新操作,或者抛出主键冲突的异常信息。注意,这里的“主键”是“列设置”中用户指定的主键列,并不一定是数据库表的主键,但列设置中的“主键”也需要满足数据唯一性。
| ||
是否开启批量 | 配置处理数据库操作时是否使用数据库批处理。
| ||
移除空格 | 设置是否启自动去除单元格数据前后的空格,默认选择“是”。 | ||
主键校验方式 | 校验导入Excel文件中存在的重复数据。
在导入Excel文件的数据量较少时推荐使用内存校验,数据量较多时推荐使用数据库校验。 |
批量导入与主键冲突情况:
1、【主键冲突处理规则】选择【更新】时,无论是否开启【是否开启批量】,有主键冲突的时候都会更新,且显示导入行数为导入文件的数据的总行数。
2、【主键冲突处理规则】选择【作为异常处理】时:
- 开启批量导入:冲突行后数量将不导入。导入行数为冲突行前导入的行数;
- 关闭批量导入:跳过冲突行,后续数据继续导入。导入行数为总行数减去异常行数。
- 若在同一个批量里有两条一样的数据,开启批量导入,和设置的主键重复的数据也会一同导入;关闭批量导入,主键重复的数据不会一同导入。
锚 | ||||
---|---|---|---|---|
|
设置项说明如下:
名称 | 说明 | ||
---|---|---|---|
字段名和字段类型 | 根据基本设置中的回写表结构自动读取。 | ||
是否主键 | 用于标识导入数据的唯一性。缺省会自动从数据库读取,但用户可以更改,例如选择学校代码、单位号作为主键。 | ||
是否允许空值 | 缺省会自动从数据库读取,但用户可以更改。 | ||
绑定输入 | 设置数据库表字段的数据来源。
唯一id:41位长的唯一id。 系统时间:执行导入时的系统时间。 当前用户名称:当前用户的名称。 当前用户别名:当前用户的别名。 当前行号:当前的行号。
|
按文件绑定
按文件绑定是系统提供的一种快速绑定字段的方式,通过Excel文件中的某一行的内容与数据库表的字段名(或别名)相同,自动完成Excel列与字段的绑定,而无需逐列绑定。
如数据库表结构:
Excel文件内容:
则通过文件绑定,选择该Excel文件并设置Sheet名、行号,完成自动绑定。
- Excel配置文件:Excel文件,该文件中必须有一行是数据库字段名或别名,系统通过将这个名称和数据库表的列名、或列的别名匹配达到自动映射的目的。
- 作为补录模板:勾选这一项后,系统会将上传的配置文件作为补录模板,相当于功能“上传Excel补录模板”功能。
- Sheet名:用于匹配的Sheet页名称,如果勾选了“作为补录模板”,该名称必须和Excel导入模板中配置的Sheet名相同。
- 名称所在行号:字段名、别名所在行号。
校验设置
校验规则支持:
- 字符长度限制。
- 值域范围验证(必须先设置好值域范围)。
- 数字范围验证。
- 正则表达式验证(譬如某一列必须满足邮件的规则,就可以使用正则表达式验证)。
锚 | ||||
---|---|---|---|---|
|
如果通过“列设置”中的“校验设置”不能满足用户的验证需求,可以通过扩展设置进行自定义校验规则。
- 规则验证类:自定义java验证类,对每一行数据进行校验。该类必须实现smartbi.daq.Excelimport.IRuleValidator接口,设置了该项,系统缺省的“校验设置”是不生效的,用户可以通过继承smartbi.daq.Excelimport.
- DefaultRuleValidator保留缺省的校验设置。
示例:扩展设置-
- 规则校验类。
- 数据处理类:缺省情况下,系统使用smartbi.daq.Excelimport.DefaultRowDataImporter处理每一行数据,如果用户需要实现自己的导入数据的逻辑,可设置该类,并必须实现smartbi.daq.Excelimport.
- IRowDataImporter接口。
示例:扩展设置-
borderColor | #BBBBBB |
---|---|
bgColor | #F0F0F0 |
borderWidth | 1 |
borderStyle | solid |