历史版本18 :Excel标记导入 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:
产品版本最低JAR包要求插件版本
FR10.02021-01-25V1.5


目录:

1.概述编辑

1.1 应用场景

原有的Excel导入功能虽然不需要做什么设置,但其支持的场景也相对有限。在遇到一些复杂场景的时候,经常会出现导入空白,数据错位、缺失的问题。

如果遇到原有Excel导入功能无法支持当前模板的格式,想要对每个模板设置不同的导入逻辑,有自定义选择某个sheet导入的需求,希望对每个sheet使用不同导入方式等场景,则可以使用此插件。

1.2 功能说明

Excel标记导入整合了所有原有的Excel导入逻辑和导入方式,其支持的格式更多。同时,标记导入也多了一些新的功能和设置。具体功能清单如下:

  • 支持清空、覆盖、增量三种导入方式

  • 支持纵向、横向两种导入方向

  • 支持对导入值进行显示值和实际值的转换

  • 支持按照位置导入内容区域以外的内容

  • 支持自由选择Excel的某个sheet导入

  • 支持导入时记住本次导入配置

  • 支持自由设置导入某一列的实际值或者显示值

  • 支持智能识别Excel的标题和内容区域

1.3 功能限制

1.3.1 不支持的格式

标记导入支持了大部分的格式,所以仅将不支持的格式列在下方。


场景图示
1存在斜线的单元格无法识别
2多数据区域无法导入

1.3.2 不支持的场景

  • 不支持新填报预览

  • 不支持移动端

  • 不支持断开的导入区域

1.4 模板设计规范(重要)

标记导入需要遵循的模板设计规范如下:

  • 内容区域存在数据字段时,需要设置成列表展示。当前导入只支持列表。

  • 内容区域的单元格,需设置成可扩展。

  • 需要导入的数据列标题需要和Excel中该数据列的标题保持一致。

  • 尽可能使用Microsoft Excel 2007及以上版本,对于WPS Excel和Microsoft Excel低版本不保证兼容。


2.插件介绍编辑

2.1 插件安装

点击下载插件:标记导入插件

设计器插件安装方法请参见:设计器插件管理

服务器安装插件方法请参见:服务器插件管理

2.2 设置说明

2.2.1 导入标记设置

设置入口为「模板>Excel导入标记」。

设置名称说明
表名显示当前设置的sheet页,每个sheet页需要单独设置导入标记。
标题区域

用于标记模板中的标题区域,例如A1:D1,不支持断开的区域。

可以使用十字按钮快速拖动选取对应区域单元格:

1.gif

内容区域

用于标记模板中的内容区域,例如A2:D2,不支持断开的区域。

和标题区域一样,可以使用十字按钮快速拖动选取对应区域单元格。

导入方向

分为纵向和横向。其适用场景如下图所示:

纵向(预览时标题为横向,而数据需要纵向导入)

横向(预览时标题为纵向,而数据需要横向导入)

大部分导入Excel场景都适用「纵向」。

形态设置勾选后,会将导入值作为显示值,并按照单元格数据字典设置,在提交时将导入值转换为实际值入库。具体效果可参考:Excel导入显示值转换
智能识别Excel标题区域和内容区域

勾选后,用户在导入时,系统会自动根据模板设置识别出导入的Excel中的标题区域和内容区域,并且支持用户对识别错误的区域进行修改。

勾选后,需要设置Excel中的标题区域位置,该位置可以是一个不精准的范围,但一定需要包括标题所在位置。例如标题为第5行,则可以设置为3-6行。设置的精准度会影响导入性能,因此建议尽可能精准。

当用户在导入时勾选了「保存设置」后,后续导入时「智能识别Excel标题区域和内容区域」将不再生效,会优先读取保存的设置。

导入方式共有三种:清空、增量和覆盖,支持多选,如未勾选任何一项则等同于全选。该项设置所选的导入方式会出现在用户导入界面中,供用户选择。
支持导入内容区域外的部分

勾选后,会将Excel中内容区域以外的内容进行导入,且这部分在导入时执行的是按位置匹配

2.2.2 单元格设置

可以在内容区域单元格设置导入Excel的显示值还是实际值,默认为显示值。

注:该设置只对「标记导入」生效,其他导入方式不读取该设置。

Excel的实际值和显示值示例如下:

2.2.3 工具栏设置

设置入口为「模板>模板web属性>填报页面设置」。

2.2.4 预览设置

设置入口为填报预览时点击工具栏的「标记导入」。

设置名称
说明
sheet名称

会自动读取Excel中的所有sheet以供选择勾选,在导入时会将勾选的sheet按设置进行导入。

如果Excel仅有一个sheet,则会自动选中该sheet。

标题区域

用于标记Excel中的标题区域,例如A1:D1,不支持断开的区域。

如果模板设置了「智能识别Excel标题区域和内容区域」,则会自动识别Excel的标题区域,并支持用户修改。

内容区域

用于标记Excel中的内容区域,例如A2:D2,不支持断开的区域。

如果模板设置了「智能识别Excel标题区域和内容区域」,则会自动识别Excel的内容区域,并支持用户修改。

导入位置

标记需要导入到模板中的哪个sheet。

注:如果下拉列表为空,有可能是模板未设置Excel导入标记,可参考2.2.1设置

导入方式设置导入方式,此处的可选项为2.2.1中「导入方式」所设置的导入方式。
保存设置

类似于暂存,会根据用户名和模板名称,记住本次的导入设置。

勾选后在下次导入时,会保留上一次的设置。去除勾选后,则会清空当前用户对此模板的所有导入设置。

当勾选该设置后,后续导入时「智能识别Excel标题区域和内容区域」将不再生效,会优先读取保存的设置。


3.示例编辑

3.1 模板准备

设计模板和Excel如下:

模板

Excel

3.2 设置模板导入标记

打开「模板>Excel导入标记」,按下图所示设置:

注:此处的标题区域和内容区域对应的是模板中的标题和内容区域,非Excel的标题和内容区域。

3.3 添加标记导入按钮

打开「模板>模板web属性>填报页面设置」,选择「为该模板单独设置」,双击「标记导入」添加到工具栏。

3.4 预览模板设置

选择填报预览,点击工具栏的「标记导入」按钮选择需要导入的Excel,之后按下图所示设置导入标记:

注:此处的标题区域和内容区域对应的是Excel的标题和内容区域,非模板的标题和内容区域。

3.5 效果预览


4.文件下载编辑

点击下载模板:标记导入demo.cpt

点击下载Excel:标记导入demo.xlsx


5.注意事项编辑

5.1 单元格初始加载后才支持导入数据

单元格需要初始加载后,才可以导入对应数据。如果遇到标记导入设置无误,但单元格无法导入数据的现象,可以排查下是否是因为该单元格没做任何设置,从而没有初始加载造成的。例如下图所示,如果在勾选了「区域外内容导入」且位置对应无误的情况下,C2和H10依然无法导入数据,可以尝试在制作模板时给C2和H10任意填入内容后再删除来解决。

5.2 和原有Excel导入功能的对比

5.2.1 格式支持度


格式
原Excel导入标记导入
1

单行表头,表头部分无横向扩展

支持支持
2

单行表头,表头部分存在一个横向扩展

支持支持
3

自由报表,不存在扩展单元格

支持支持
4

导入数据区域以外部分

不支持支持
5

多层表头

不支持支持
6

表头部分多个横向扩展


不支持支持
7

导入区域有多行扩展行

不支持支持
8导入区域由多个数据集组成

不支持支持

5.2.2 功能对比


功能原Excel导入标记导入
1导入方式不同导入方式需要使用不同的按钮可以在一个按钮中同时实现清空、覆盖、增量导入设置
2多sheet不支持自由选择Excel中的某个sheet导入支持自由选择Excel中的某个sheet导入,支持将多个sheet导入到一个页面中
3导入方向不支持横向导入支持横向导入
4导入时的设置可以直接导入,无需额外设置需要在导入时设置标题和内容区域,支持记住当前配置
5导入实际值或显示值无法自由设置可以对导入的每一列分别设置导入实际值还是显示值

5.3 JS接口

FR.MarkExcelImport.markImportExcel()

5.4 导入配置存储位置

在导入时勾选保存设置后,会将相关信息存储到finedb中,具体位置如下图所示:

fine_excel_mark_conf 表

fine_excel_mark_sheet_conf 表