1. 概述编辑
1.1 版本
报表服务器版本 | JAR 包版本 | 插件版本 |
---|---|---|
10.0 | 2021-01-25 | v1.6 |
1.2 应用场景
Excel标记导入通过标手动标记加智能识别的方式,实现Excel数据导入。整合了所有原有的Excel导入逻辑和导入方式的基础上,操作更智能,功能更强大,场景更丰富。
1.3 名词解释
标题区域:表格中的表头部分
内容区域:表格中的数据部分
内容区域外部分:表格中不规则的内容部分
1.4 功能描述
主要支持以下场景
支持清空、覆盖、增量三种导入方式
支持纵向、横向两种导入方向
支持转换提交入库的实际值
支持多sheet导入的多种匹配方式
支持自定义导入Excel的实际值/显示值
支持单独为某个sheet设置导入逻辑
不支持的场景如下:
不支持新填报预览
不支持移动端
不支持断开的导入区域
不支持导入图片
存在斜线的单元格无法识别
不支持导入内容区域的合并单元格,会自动拆成列表
尽可能使用Microsoft Excel 2007及以上版本,对于WPS Excel和Microsoft Excel低版本不保证兼容。
2. 插件介绍编辑
2.1 插件安装
点击下载插件:Excel标记导入
设计器插件安装方法请参见:设计器插件管理
服务器安装插件方法请参见:服务器插件管理
2.2 模板设计建议
模板中需要导入数据的列(行),需要和Excel中对应数据列标题保持一致
模板中内容区域的单元格,需要设置成可扩展
模板中内容区域需要展示数据时,尽量设置成列表展示
内容区域外部分,待导入内容的单元格在设计器中需要初始化(可以赋值/设置单元格样式后保存),未初始化会导致导入失败
2.3 基础使用方法(必选)
说明:以下操作步骤为必选项,不可省略,否则不能正常导入。
1)找到设置入口:「设计器>模板>Excel导入标记」
注:若模板有多个sheet需要导入,则每个sheet页都需要单独设置导入标记,否则前端导入时选不到该sheet。
2)导入标记设置:选择标题&内容区域
格式说明:【A1:D2】指A1为起点,D2为终点的4×2单元格区域
3)添加标记导入按钮,完成配置
打开「模板>模板web属性>填报页面设置」,选择「为该模板单独设置」,双击「标记导入」添加到工具栏。
4)预览模板,测试业务导入的效果
2.4 进阶使用方法(可选项)
2.4.1 导入标记设置区域
说明:sheet表设置内的配置项,只针对当前sheet生效;模板设置内的配置项,对整个模板所有sheet生效
设置名称 | 说明 | 适用场景 |
---|---|---|
导入方向 | 默认选择纵向。 根据数据扩展方向选择,分为纵向和横向,大部分导入Excel场景都适用「纵向」。 | 纵向(预览时标题为横向,而数据需要纵向导入)
横向(预览时标题为纵向,而数据需要横向导入) |
智能识别Excel标题区域和内容区域 | 默认开启智能识别 “Excel标题区域”用于提升识别效率——标记的范围越精准,识别越快。可以不填写,或不精准填写。 | 适用于大部分场景,能有效降低业务用户操作成本 |
导入方式 | 默认清空导入。 共有三种导入方式:清空、增量和覆盖,支持多选,若未勾选任何一项会等同于全选。
每次导入时均清空内容区域,其他区域不会被清空,最后只保留当次Excel中导入的内容。 注:该清空只是清空页面数据,若想清空对应数据库表数据,可以参考导入Excel提交前清空数据库表
将Excel中的数据导入时,会根据位置覆盖掉相同位置的页面数据。页面已有数据行/列多于Excel的部分,会保留在页面
每次导入 Excel 时,都会在结尾行扩充增加 Excel 导入的内容。如果页面初始化时没有数据,只有一行空白行,则导入后该空白行会保留。 |
|
支持导入内容区域外的部分 | 默认不勾选。 勾选后,会将Excel中内容区域以外的内容进行导入,且这部分在导入时执行按照位置匹配 | 适用于Excel除了标题和内容行列外,有固定内容的场景,希望直接按照位置导入,比如落款或日期等。![]() |
将数据转换为实际值提交 | 默认不勾选。 勾选后,显示值转换可以将Excel导入的值,根据自定义的数据字典转换为想要的实际值来入库。比如导入的是男、女,入库的是1、2。具体效果可参考:Excel导入显示值转换 | 导入后,想保持当前显示值(导入值)不变,想通过形态改变入库实际值,需要勾选“将数据转换为实际值提交”,就可以将形态中的实际值入库,不勾选的话。 该功能勾选后,形态转换对提交校验同样生效 |
多sheet导入逻辑 | 默认按sheet名进行匹配 共有三种多sheet导入逻辑:按sheet名匹配、按sheet位置进行匹配、手动匹配 |
|
默认以智能识别结果导入 | 默认开启 |
|
2.4.2 单元格设置区域
设置名称 | 说明 | 适用场景 |
---|---|---|
导入内容 | 默认为显示值。 可以在内容区域单元格设置导入Excel的显示值还是实际值。 | 由于业务需要,对Excel某列(行)数据格式做过处理,但希望导入原始数据时,需要选择导入实际值,如下图: |
3. 不同导入场景与推荐的功能配置编辑
3.1 根据业务前端配置的自由度
业务前端确认项 | 设计器导入配置 | 业务导入操作效果 |
---|---|---|
直接导入(高便捷低自由度) | 除了标题区域和内容区域,都采用默认设置 | ![]() |
根据需求部分自定义(适中) ——默认按照智能识别的结果进行导入 | ① 自定义多sheet导入时匹配关系 ② 自定义选择每个sheet的导入方式 ③ 多sheet匹配关系和导入方式支持同时自定义(即以上两个设置都勾选) | ① 需要手动匹配sheet页 ② 需要手动选择导入方式 ③ 手动匹配sheet页+选择导入方式 |
根据需求部分自定义(适中) ——多sheet匹配关系默认&导入方式唯一 | 导入方式唯一& 多sheet匹配关系默认,需要确认标题/内容 注:也支持导入方式唯一或匹配关系默认时,另外的两个配置项需要前端确认,此处省略示例 | ![]() |
全部自定义导入(高自由度低便捷)
| ![]() |
3.2 根据导入场景(以下都默认按照智能识别结果导入)
导入场景 | 设计器导入标记 | 业务导入操作 | 示例文件下载 |
---|---|---|---|
单sheet、单行表头 | 按照基础使用方法进行配置即可 | 默认智能识别结果,不需要业务前端确认 | |
单sheet、单行表头+内容区域外部分 | 需要开启“支持导入内容区域外的部分” | 默认智能识别结果,不需要业务前端确认 | |
自由报表,不存在扩展单元格 | 把大标题作为标题区域,空白行作为内容区域,其他固定单元格作为内容外区域导入 | ||
多层表头 | 大标题作为内容外区域,多层表头都作为标题区域 | ![]() | |
横向导入 | 导入方向设置为“横向” | ![]() |
4.接口与数据存储编辑
4.1 JS接口
FR.MarkExcelImport.markImportExcel()
使用场景:自定义按钮进行导入
4.2 导入配置存储位置
在导入时勾选保存设置后,会将相关信息存储到finedb中,具体位置如下图所示:
fine_excel_mark_conf 表
fine_excel_mark_sheet_conf 表