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文件内容:
则通过文件绑定,选择该Excel文件并设置Sheet名、行号,完成自动绑定。
- Excel配置文件:Excel文件,该文件中必须有一行是数据库字段名或别名,系统通过将这个名称和数据库表的列名、或列的别名匹配达到自动映射的目的。
- 作为补录模板:勾选这一项后,系统会将上传的配置文件作为补录模板,相当于功能“上传Excel补录模板”功能。
- 注:只有上面勾选了“上传Excel补录模板”的时候才会生效;如果上面勾选了“绑定电子表格”是不会生效的,下载下来的还是电子表格
- Sheet名:用于匹配的Sheet页名称,如果勾选了“作为补录模板”,该名称必须和Excel导入模板中配置的Sheet名相同。
- 名称所在行号:字段名、别名所在行号。
校验设置
校验规则支持:
校验规则设置项如下:
设置项 | 说明 |
---|---|
字符长度 | 用于设置限制字符长度。 |
值域范围 | 用于设置只允许选择值域列表中的某个值。 |
范围检验 | 用于设置数据的范围。 |
正则表达式 | 用于设置Java语法的正则表达式,例如设置“必须是小数”、“必须是小写字母”等。
|
自定义提示 | 正则表达式不匹配时,用于设置提示信息。 该项未设置时,显示系统默认提示信息。 |
锚 | ||||
---|---|---|---|---|
|
如果通过“列设置”中的“校验设置”不能满足用户的验证需求,可以通过扩展设置进行自定义校验规则。
- 规则验证类:自定义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 |
注:excel导入大小系统有做限制,系统运维→系统选项,不建议更改大小,否则会卡死或者内存溢出!