历史版本19 :Excel标记导入 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

插件版本报表工程最低版本要求功能变动
V1.7.011.0.2
-
V1.7.111.0.5修复了一些 BUG

1.2 应用场景

Excel标记导入通过标手动标记加智能识别的方式,实现Excel数据导入。整合了所有原有的Excel导入逻辑和导入方式的基础上,操作更智能,功能更强大,场景更丰富。

1.3 名词解释

  • 标题区域:表格中的表头部分

  • 内容区域:表格中的数据部分

  • 内容区域外部分:表格中不规则的内容部分

1.4 功能描述

主要支持以下场景

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

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

  • 支持多sheet导入场景

  • 支持自定义导入Excel的实际值/显示值

  • 支持将导入值按照形态设置转为实际值入库

不支持的场景如下:

  • 不支持新填报预览和移动端预览

  • 不支持断开的导入区域

  • 不支持导入加密的Excel

  • 不支持导入Excel中的图片和公式

  • 不支持以显示值导入Excel中会计格式的数据

  • 清空导入不支持公式填报联动

  • 无法识别存在斜线的表头单元格

  • 不支持导入内容区域的合并单元格,会自动拆成列表

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

  • 和定制展示列插件,以及数字滚动器插件存在冲突

2. 插件介绍编辑

2.1 插件安装

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

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

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

2.2 模板设计规范

  • 模板中需要导入数据的列(行),需要和Excel中对应数据列标题保持一致,导入时会按照标题匹配

  • 模板中内容区域的单元格,需要设置成可扩展

  • 模板中内容区域存在数据集字段时,需设置成列表展示

  • 内容区域外部分,待导入内容的单元格在设计器中需要初始化(可以任意设置单元格后保存),未初始化会导致导入失败

2.3 基础使用方法(必要)

说明:以下操作步骤为必要项,不可省略,否则不能正常导入。

1)找到设置入口:「模板>Excel导入标记」

1.png

注:若模板有多个sheet需要导入,则每个sheet页都需要单独设置导入标记,否则前端导入时选不到该sheet。

2)导入标记设置:选择标题&内容区域

标记导入策略化-设计器导入标记.gif

格式说明:【A1:D2】指A1为起点,D2为终点的4×2单元格区域

3.png

3)添加标记导入按钮,完成配置

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

4.png

4)预览模板,测试业务导入的效果

标记导入策略化-前端简单导入.gif

2.4 进阶使用方法(可选项)

2.4.1 Excel导入标记设置

注:sheet表设置内的配置项,只针对当前sheet生效;模板设置内的配置项,对当前模板所有sheet生效

设置名称
说明
适用场景
导入方向

默认选择纵向。

根据数据扩展方向选择,分为纵向和横向,大部分导入Excel场景都适用「纵向」。

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

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

智能识别Excel标题区域和内容区域
默认开启智能识别

“Excel标题区域”用于提升识别效率——标记的范围越精准,识别越快。可以不填写,或不精准填写。

适用于大部分场景,能有效降低业务用户操作成本
导入方式

默认清空导入。

共有三种导入方式:清空、增量、覆盖,支持多选。

  • 清空导入

每次导入前先清空内容区域,而其他区域不会被清空,最后只保留当次Excel中导入的内容。

注:该清空只是清空页面数据,若想清空对应数据库表数据,可以参考导入Excel提交前清空数据库表
  • 覆盖导入

将Excel中的数据导入时,会根据位置覆盖掉相同位置的页面数据。如果页面原有数据行/列多于Excel,则多出部分会保留在页面

  • 增量导入

每次导入 Excel 时,都会在结尾行扩充增加 Excel 导入的内容。


  • 当导入方式设置唯一时,业务用户默认按照此方式导入,适合业务用户不了解导入方式的情况

  • 当导入方式设置多个时,需要业务用户在导入时进行选择,适合业务用户掌握导入方式的情况

支持导入内容区域外的部分

默认不勾选。

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

适用于Excel除了标题和内容行列外,有固定内容的场景,希望直接按照位置导入,比如落款或日期等。9.png
将数据转换为实际值提交

默认不勾选。

勾选后,可以将Excel导入的值,根据自定义的单元格形态-数据字典转换为想要的实际值来入库。比如导入的是男、女,入库的是1、2。具体使用方法可参考:Excel导入显示值转换

勾选后,数据校验时也会将导入值转为实际值来处理。

适用于入库时,想将数据根据自定义的规则转换为另一个值提交的场景。比如导入的是男、女,入库的是1、2。

多sheet导入逻辑

默认按sheet名进行匹配

共有三种多sheet导入逻辑:按sheet名匹配、按sheet位置进行匹配、手动匹配

  • 按sheet名匹配,即按照sheet页名称匹配导入

  • 按sheet位置进行匹配,即按照sheet页顺序匹配导入

  • 手动匹配,业务人员可以在前端自定义匹配关系

默认以智能识别结果导入
默认开启
  • 开启后,导入时不会弹出对话框,直接按照模板Excel导入标记中的设置进行导入

  • 关闭后,导入时会弹出对话款,业务人员可以确认并修改导入配置

2.4.2 单元格设置

设置位置
说明
适用场景

默认为显示值。

可以自定义针对内容区域的单元格设置导入Excel的显示值还是实际值。

Excel中的单元格存在实际值和显示值,希望导入时能自定义导入其中的一种,如下图:

10.png

2.4.3 导入时设置

设置入口为填报预览时点击工具栏的「标记导入」,根据模板中Excel导入标记」的设置,会呈现不同的配置项组合。


设置名称
说明
sheet名称

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

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

标题区域

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

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

内容区域

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

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

导入位置

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

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

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

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

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

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


3. 不同导入场景与推荐的功能配置编辑

3.1 根据业务前端配置的自由度

业务前端确认项
设计器导入配置
业务导入操作效果
直接导入,无需确认和修改(高便捷度低自由度)

除了标题区域和内容区域,都采用默认设置

最快导入操作.gif

根据需求,部分自定义(成本适中)

——默认按照智能识别的结果进行导入



① 自定义多sheet导入时匹配关系

② 自定义选择每个sheet的导入方式

③ 多sheet匹配关系和导入方式支持同时自定义(即以上两个设置都勾选)

① 需要手动匹配sheet页

适中导入操作.gif

② 需要手动选择导入方式

适中导入操作2.gif

③ 手动匹配sheet页+选择导入方式

适中导入操作3.gif

根据需求,部分自定义(成本适中)

——多sheet匹配关系默认&导入方式唯一

导入方式唯一& 多sheet匹配关系默认,需要确认标题/内容

注:也支持导入方式唯一或匹配关系默认时,另外的两个配置项需要前端确认,此处省略示例


适中导入操作4.gif

全部自定义导入(高自由度低便捷度)

  • 自定义多sheet导入时匹配关系

  • 确认智能识别的Excel标题和内容是否正确,可手动修改

  • 自定义选择每个sheet的导入方式

适中导入操作5.gif


3.2 根据导入场景(以下都默认按照智能识别结果导入)

导入场景
设计器导入标记
业务导入操作
示例文件下载
单sheet、单行表头

按照基础使用方法进行配置即可

默认智能识别结果,不需要业务前端确认

标记导入策略化-前端简单导入.gif

单sheet单行表头-Excel.xls

单sheet单行表头-模板.cpt

单sheet、单行表头+内容区域外部分


需要开启“支持导入内容区域外的部分”

默认智能识别结果,不需要业务前端确认

单表头内容区域外.gif

单sheet单行表头内容区域外-Excel.xls

单sheet单行表头+内容区域外部分.cpt

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

把大标题作为标题区域,空白行作为内容区域,其他固定单元格作为内容外区域导入



自由填报报表.gif

自由填报报表.xlsx

自由填报报表.cpt

多层表头

大标题作为内容外区域,多层表头都作为标题区域


最快导入操作.gif

多层表头-销售额预算excel.xlsx

多层表头-销售额预算填报表.cpt


横向导入

导入方向设置为“横向”

横向导入.gif


横向导入.xlsx

横向导入.cpt



4.接口与数据存储编辑

4.1  JS接口

FR.MarkExcelImport.markImportExcel()

使用场景:自定义按钮进行导入

4.2  导入配置存储位置

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

fine_excel_mark_conf 表

fine_excel_mark_sheet_conf 表

5.其他常见问题编辑