1. 概述
1.1 应用场景
在需要导入Excel进行提交入库的场景下,如果Excel数据量较大,导入时会给浏览器造成比较大的负担,甚至导致页面崩溃。
使用「Excel批量导入」插件可以在不预览模板的情况下进行多Excel文件的导入提交,适用于没有在页面上修改数据需求的场景。
注:不支持移动端使用。
1.2 功能逻辑
1)导入和提交会一起执行,不需要预览相关模板。
2)功能入口属于平台,所以支持分配权限操作。
3)支持选择多个Excel进行导入。
4)支持数据校验设置,但不支持web属性中的填报事件设置。
5)Excel导入逻辑与「普通Excel导入」一致
6)批量导入时,默认使用增量导入规则,而非浏览器导入时默认的覆盖导入。
如不希望最终数据重复入库,请勿在填报模板中默认查询出数据库的数据。
2. 示例
2.1 插件安装
点击下载插件:Excel 批量导入
设计器插件安装方法请参见:设计器插件管理
服务器安装插件方法请参见:服务器插件管理
2.2 添加链接节点
管理员登录FineReport系统,点击「管理系统>目录管理>管理目录>填报录入>添加链接」。
链接名称:批量导入
链接路径:/webroot/decision/url/excel/submit
展示终端:PC
点击「确定」。如下图所示:
2.3 分配链接权限
点击「管理系统>权限管理」,选中人力资源部门的「部长」职位,为其分配「批量导入」的查看权限。如下图所示:
2.4 添加批量导入任务
1)点击目录>填报录入>批量导入,点击添加任务按钮,任务名称为任务一,选择模板%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject|\ExcelImport\ImportSubmitVerify.cpt
注:次级管理员不能进行添加任务、删除任务的操作。
2)添加完成后,可对「任务列表」里的任务执行导入、编辑、删除的操作,如下图所示:
3)点击任务权限,选中人力资源部长,将任务一的查看权限分配给人力资源部长职位。如下图所示:
2.5 效果查看
点击下载excelimport.xls表:excelimport.xls
使用人力资源部长 Lily 的账号登录数据决策系统,FineReport 内置所有用户密码均为 123456 。
点击填报录入>批量导入,可看到批量导入链接里只有任务一,点击导入按钮,选择Excel进行导入,如下图所示:
3. 查看导入失败原因
Excel 批量导入功能如果在执行导入提交的过程中出现问题,会中止程序并给出错误提示。常见的错误有2种,数据校验失败和提交失败,具体示例如下。
3.1 数据校验失败
1)为模板设置数据校验, F3 单元格的值必须在 0 到 1000 之间,若不在 0 到 1000 中间就弹出错误信息,如下图所示:
2)修改 excelimport.xls,修改「成本价」字段数据,使之不符合数据校验规则,如下图所示:
3)重新导入 Excel,提示校验出错,如下图所示:
4)点击提示信息按钮,可看到错误信息的内容,如下图所示:
5)点击下载勘错文件,会自动下载wrong.xls文件。打开该文件,可看到被标记为红色背景的错误单元格,如下图所示:
3.2 填报入库失败
如果出现下图所示报错,则表示失败原因为提交入库失败,此时可以排查对应模板是否存在设置问题。
4. 注意事项
虽然批量导入省去了预览模板的过程,但是其性能仍然有一定的上限。
建议 Excel 数据总量(行×列)在 200w 以下,否则导入会占用较多服务器资源,且时间较长。
超过25min时,进程会被消除并返回 process is null/timeout 的报错。