1. 概述编辑
1.1 学习视频
本文学习视频:Excel导入简介
1.2 功能简介
FineReport支持填报时,将Excel中的数据直接导入到填报页面,适用于批量填报的场景。通过该功能,可以让线下的Excel流通起来,更好的发挥数据价值。
实现本文中的导入效果,需要下载Excel标记导入插件。
1.3 名词解释
标题区域:表格中的表头部分
内容区域:表格中的数据部分
内容区域外部分:表格中不规则的内容部分
1.4 导入逻辑
① 内容区域默认按照标题匹配的逻辑,即只有Excel和模板标题完全一致的列/行,可以成功导入。若没有匹配到,会提示导入失败
② 内容区域外的部分按照位置匹配的逻辑,即Excel和模板位置固定的部分,可以成功导入。
注:「Excel标记导入」,不受excel导入逻辑插件的影响
1.5 功能学习建议
阶段 | 学习内容 | 学习目标 |
---|---|---|
需求分析阶段 | Excel导入简介 | 了解Excel导入的使用场景,掌握Excel导入的逻辑,能够正确判断什么场景下可以使用Excel导入 |
开发实施阶段 | Excel标记导入功能介绍 | 掌握Excel标记导入功能使用,能够根据业务需求正确开发模板 |
开发优化阶段 | Excel导入常见问题与解决方案 | 能够根据问题找到相应的解决方案,并优化模板 |
2. 导入支持场景编辑
2.1 支持场景
说明:以下场景都可以通过Excel标记导入实现,需要下载Excel标记导入插件
场景 | 图示 | |
---|---|---|
1 | 单行表头,表头部分无横向扩展 | |
2 | 单行表头,表头部分存在一个横向扩展 | |
3 | 导入内容区域外的部分 | |
4 | 自由报表,不存在扩展单元格 | |
5 | 多层表头 | |
6 | 表头部分有多个横向扩展的数据集 | |
7 | 内容区域由多个数据集组成 | |
8 | 内容区域有多行扩展行 | |
9 | 横向导入,即内容区域为横向 | |
10 | Excel有多个sheet页需要导入 |
2.2 不支持场景
序号 | 场景 | 图示 |
---|---|---|
1 | 存在斜线的单元格无法识别 | |
2 | 多数据区域无法导入 | |
3 | Excel内容区域存在分组合并时,导入后会自动拆成列表 |
3. 配置规范(重要)编辑
针对常见的一些Excel导入问题,以下总结几条模板配置的基础规范。
1)建议优先使用Excel标记导入
2)导入区域存在数据字段时,需要设置成列表展示。当前导入只支持列表。
3)导入区域的单元格,需设置成可扩展。其他部分则不建议设置为扩展,可能会干扰后台程序判断。
4)尽可能使用Microsoft Excel 2007及以上版本,对于WPS Excel和Microsoft Excel低版本不保证兼容。
5)建议模板的导入区域表头部分,设计成和Excel表头部分一致,通过标题匹配。
4. 注意事项编辑
1. 导入Excel时不会触发控件自身设置的校验规则,可以使用报表填报属性设置中的数据校验功能来设置。
2. 模板中设置了公式的单元格,如果在导入Excel时被Excel中的数据覆盖了,则无法再触发公式联动计算的效果。
3. 数据量(行*列)超过10w的导入,可以考虑使用批量导入功能。
4. 10.0.19.2版本(2021.10.15jar)后,导入模板中如果存在汇总类计算公式(max,sum等),且涉及到的数据量较多的话,可能会触发智能运维的智能释放功能,造成Excel导入终止。此时可以简化公式,避免将公式放在扩展行中,或者联系技术支持协助优化。
5. 如果遇到所有Excel都无法导入的问题,可以检查下是否是因为网络限制,导致上传文件请求阻塞了。例如nginx的client_max_body_size设置,默认为1M,就会影响到文件上传和Excel导入,使得超过1M的文件无法上传。
6. 不支持导入图片。