9.14 Excel导入填报
Excel 导入功能可以对填报报表在页面中导入
Excel中的批量数据,完成修改后进行填报。支持的报表样式包括纵向分组列表、卡片式报表及包含纵向列表的卡片式报表。可导入的数据包含Excel中的文字、数值、日期等,它们会被当作单元格的值应用到报表中。
为了方便使用该功能,系统还提供了导出Excel 数据模板的功能,可导出一个与报表结构相同的含一条数据Excel文件,作为数据填写模板,用户可基于导出的模板进行编辑添加数据;也可以自定义上传xlsx模板供下载后编辑。
使用注意
- 报表不支持横向扩展
- 待导入的Excel Sheet页需要在结构上(隐藏列除外)与目标报表布局的展现结果一致,报表中的隐藏列不应出现在Excel Sheet中
- 隐藏列中不允许有扩展格,对于某些需要带入报表中,但在报表中不可见的单元格(如起始扩展格),需要将所在列的列宽设置为0,而不能设置为隐藏
- 对于列宽为0的列,导入的excel文件中必须有该列且与目标报表布局的展现结果一致,可以使用下方模板设置中的标题描述设置功能进行标注说明
- 报表中的单选、多选按钮,下拉列表,下拉树,图片等控件暂不支持数据导入
- 不支持大数据量导入(支持千条左右)
报表区域
报表布局被分为了数据区和其他区域
1.数据区
数据区是主要的数据导入区域,待导入填报的数据一般都在数据区中。最简单的数据区可以看作一个无标题、尾标题及其他说明文字的纵向扩展列表。
数据区的核心部分是一组按依赖关系传递组成的单元格区域(一般应该是一个矩形),这些格按照依赖关系传递最终指向唯一的一个扩展的起始扩展格。对于简单的纵向列表来说,最左侧被依赖的数据扩展格就是起始扩展格。在导入时,Excel中的对应数据区位置中的格子会被作为这些扩展格的实例格处理,以用作填报数据。
2.其它区域
数据区外的其他格为其他区域。原则上它们与Excel中的对应位置的格应该是完全匹配的(位置,结构都应完全一致)。
其它区域的数据值也会被Excel表格中覆盖,若想修改填报也可以绑定控件和单元格进行填报。
导入方式
导入时支持三种方式导入excel中的数据
- 追加:导入的数据会追加到对应的数据区后,相当于增加行后填入excel表格中的数据,提交后会insert结果。
- 清空后添加:导入的数据会把数据区的数据删除后再追加,相当于先删除行再增加行后填入excel表格中的数据,提交后会先delete数据区已有结果,再insert结果。
- 仅覆盖:会根据导入的数据修改数据区的数据,提交后执行update结果,但是需要注意:excel表格中的数据结构需要与报表中完全一致,不可以多行或者少行,否则无法正确匹配导致导入后错乱
导入样式
列表式
列表式为一般的纵向列表,可支持多级分组,最左侧的扩展格为数据区起始扩展格。
对于如上报表需要在导入样式中进行设置
起始扩展格为最左侧的扩展格,对应填入即可
表头行为选填项,对应填入应为数据区中的非数据行,用于分隔数据区和其它区域,比如上图中的2行,当有多个表头行时用逗号分隔
列表式excel填报支持多个数据区,如下图
当有多个起始扩展格时需要都填入,如下图
注意:多个扩展格之间必须空余至少有一行,无论是该行是否有值,可以让行高为0,但不可以隐藏行
单数据区列表样例下载(右键在新标签页中打开链接下载)
多数据区列表样例下载(右键在新标签页中打开链接下载)
卡片式
卡片式为类似表单的卡片式布局,需在左侧一个0列宽的列中设置扩展格,作为数据区的起始扩展格,右侧格依赖该格,通常每个卡片为一条数据。
对于如上报表需要在导入样式中进行设置
起始扩展格为列宽为0的A2,对应填入即可
卡片式样例下载(右键在新标签页中打开链接下载)
卡片列表
卡片式列表为卡片式布局中嵌套一个列表式布局。
对于如上报表需要在导入样式中进行设置
数据区起始扩展格为A2,子列表数据区的起始扩展格为B8,对应填入即可
表头行为选填项,对应填入应为数据区中的非数据行,用于分隔数据区和其它区域,比如上图中的7行,当有多个表头行时用逗号分隔
卡片列表样例下载(右键在新标签页中打开链接下载)
数据保留
可以设置多个数据保留格,数据保留格的实例格中的值不会被导入Excel中对应的值修改。
如果数据保留格位于数据区,对于新增数据行,格中的数据集公式外的公式值也会被计算。
- 数据保留格:可以写多个单元格或者一个范围,无论是数据区还是其它区域,写入方式:A3-A6,B6 ,代表A3到A6和B6区域都不会被excel中数据替换,多个范围使用逗号分隔
- 保留无控件单元格数据:勾选后所有无控件单元格都会被保留
多布局填报
当多布局填报时
导入方式、导入样式、数据保留每个布局都需要单独配置
多sheet设置、模板设置所有布局只需要配置一遍
多sheet设置
这里提供了多Sheet导入设置的选项。
1.当导入Excel导入文件是多Sheet时,选择“全部Sheet到一个布局”的导入方式,会把Excel导入文件所有Sheet数据导入到指定的报表布局中;
2.当导入Excel导入文件是多Sheet时,选择“指定Sheet到一个布局”的导入方式。 选择“按位置”指定方式,指定Excel导入文件的Sheet位置,如:0、1、2,位置从0开始,会把Excel导入文件指定Sheet数据导入到指定的报表布局中; 选择“按名称”指定方式,指定Excel导入文件的Sheet名称,会把Excel导入文件指定Sheet数据导入到指定的报表布局中;
3.当导入Excel导入文件是多Sheet时,选择“Sheet到布局自动匹配”的导入方式,匹配方式选择“按位置”,会按照Excel导入文件的Sheet位置把Sheet1数据、Sheet2数据、Sheet3数据...导入到报表对应的布局1、布局2、布局3中;匹配方式选择“按名称”,会按照Excel导入文件的Sheet名称把数据导入到报表中名称相同布局里。
模板设置
这里提供了生成一个用于填写导入的Excel模板的选项。
1.当在模板设置上传了自定义Excel导入模板时,报表展现页面中触发的导出Excel模板,则会下载自定义Excel导入模板;
2.当在模板设置未上传自定义Excel模板时,报表展现页面中触发的导出Excel模板,则会按照报表定义格式导出含有一条数据的模板(隐藏列不会导出);
模板不带分组,所以如果页面时分组效果,请在Excel中自行合并单元格形成分组后再导入;
列宽自适应列填写报表中列宽为0的列,如有多个列用逗号分隔开,导出的时可以选择以固定列宽方式显示出来;
标题描述设置可以在需要合并的单元格中增加一些描述,比如“该格要采用与B3格一样 的合并方式”。
报表标签设置
对Excel导入设置后,还需要在报表设置->页面标签中打开对应标签,才能页面执行导入操作。
模板导出与导入填报
打开填报报表,点击Excel模板导出按钮,保存Excel导入模板。
Excel数据导入文件编辑好数据后,打开设置好的填报报表,点击Excel导入按钮,选择本地文件确定,完成导入。导入成功后可以继续进行修改或直接通过填报按钮完成填报。