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

目录:

1. 概述编辑

FineReport 支持填报时将 Excel 中的数据直接导入到填报页面,如下图所示,那么导入时数据该如何匹配呢?有哪几种导入方式呢?本文将作简单介绍。

0012C7B5-EE4A-4350-A43D-98A928DDC62E.GIF

2. 导入逻辑编辑

导入逻辑是指 Excel 中的数据和填报单元格进行匹配,保证 Excel 导入模板后,数据可以对应到正确的位置,共有 3 种,如下表所示:

匹配逻辑概念
根据标题匹配

模板中的标题跟 Excel中 的标题逐一匹配,名称相同将该标题下的数据导入模板中,标题不同或不存在则不导入

注:根据标题匹配必须要 2 列或 2 列以上的标题完全相同才能算匹配成功

根据位置匹配模板中需要导入数据的单元格从第几行第几列开始,那么 Excel 中数据就从第几行第几列开始导入,跟标题名称无关,只跟位置有关系
双向导入

标题行或标题列是从单元格扩展得到的,并且用于导入数据的单元格也是可扩展的,此时需要开启双向导入

注:开启双向导入后,导入逻辑为先根据标题匹配,标题匹配失败,再根据位置匹配

各种常见报表填报时使用的导入逻辑如下:

报表适用逻辑
行数固定的行式报表只根据位置匹配
行数可扩展的行式报表
优先使用标题匹配,如果标题匹配失败(所有列的标题都不相同或者只有一个列的标题是相同的),则启用位置匹配
表头和行数都可扩展的行式报表必须开启双向导入,优先使用标题匹配,如果标题匹配失败(所有列的标题都不相同或者只有一个列的标题是相同的),则启用位置匹配
分组报表优先使用标题匹配,如果标题匹配失败(所有列的标题都不相同或者只有一个列的标题是相同的),则启用位置匹配
自由报表只根据位置匹配

3. 导入方式编辑












如果扩展行低于原模板里的行数,会自动转成位置匹配,而不是扩展导入。此时若想导入的 Excel 中只有一条数据,只要保证 Excel 与模板的数据位置逐一对应,即可成功导入一条数据。

1.1 行式报表导入 Excel

行式填报报表在线导入 Excel 的原理机制是:模板根据列标题名称去 Excel 中寻找与之一样的列标题名,如果找到了,则将数据导入进来,如果没找到则不导入,显示空白,即根据标题名导入,只需要模板中有相应标题名即可,位置随意,详细内容参见文档:Excel 导入行式报表

1.2 其他填报报表导入 Excel

非行式填报报表在线导入 Excel 的原理机制是:模板根据控件所在位置去Excel中寻找该位置对应的单元格,然后将该单元格的数据导入到模板控件中,即根据控件位置导入,模板样式与 Excel 样式必须保持一致,详细内容参见文档:Excel 导入自由报表

注:在线导入 Excel 支持导入分组数据。

2. 注意事项编辑

2.1 导入后日期格式错误

1)问题描述

导入 Excel 后,日期变成一串数字。

2)原因分析

目前不支持导入 Excel 的自定义格式,会变成常规的时间戳。

3)解决方案

修改成标准日期格式即可。

2.2 标题无法导入

1)问题描述

非双向导入的场景下,设置了双向导入逻辑,导入 Excel 时,发现有标题的内容没有导入,如下图所示:

1587029208171851.png

2)原因分析

双向导入时不会对不定行上方的格子赋值。

3)解决方案

非双向导入场景下,不要设置双向导入逻辑。