根据位置匹配

目录:

1. 描述

Excel导入行式报表根据位置匹配是指,Excel导入进来的时候需要导入数据的单元格从第几行第几列开始,那么Excel中数据就从第几行第几列开始,无关于标题名称,只跟位置有关系。
如下图,可以看到Excel中的列标题与FineReport模板的列标题完全不一致,但是位置却保持一致,FineReport模板中导入数据的单元格从B3开始,那么导入Excel中,从B3开始的数据就被导进来了:
222
注:行式报表根据位置匹配的前提是标题完全匹配不上,如果有2个或2个以上标题能匹配得上,那么就会使用根据标题匹配,但是如果通过配置文件设置了不执行根据标题匹配,那么就会直接执行根据位置匹配。
另:若要导入的是Excel2007需要将poi2007_fat.jar拷贝至%FR_HOME%\WebReport\WEB-INF\lib 下。
注:2016年8月26日以前的jar包,下载poi2007_fat.jar
注:2016年8月26日-2016年10月10日,下载新poi2007_fat.jar
注:2016年10月10日以后的jar包,poi包已经内置到third包,无需下载

2. 示例

2.1 模板准备
上图中我们可以看到,Excel中第一行数据(不包括标题)在B3~K3中,在填报模板中,导入数据的单元格也要在B3~K3,单元格从上到下扩展,并添加控件:
222
注:若导入的报表中不是空白的填报表,而是有取数的功能,则需要将报表的最左父格设置为列表显示。
2.2 报表填报属性设置
在报表填报属性中,只需要将第一行单元格与数据表的数据列进行绑定即可。
该例中,Excel中的原始数据供应商和类别都是具体的名字,若用户希望Excel导入的是名字,但实际入库的是ID怎么办呢?
此时可以在报表填报属性中使用map函数转换,以下具体介绍。
定义map函数需要的数据集
增加数据集ds1,SQL语句为:SELECT * FROM 供应商
再增加数据集ds2,SQL语句为:SELECT * FROM 产品类别
报表填报属性中使用map函数
Excel导入的是名字,使用map函数转换,如下图:
222
2.3 填报工具栏设置
默认填报工具栏是没有导入Excel按钮的,点击模板>模板web属性>填报页面设置为该模板单独设置,勾选使用工具栏,为该报表单独设置工具栏,清空工具栏,然后在按钮面板中双击提交按钮和导入excel按钮,将这两个按钮添加到顶部工具栏中,如下图:
222
已完成模板可参考%FR_HOME%\WebReport\WEB-INF\reportlets\doc\SpecialSubject|\ExcelImport\ExcelImport_1.cpt
在线查看模板效果请点击ExcelImport_1.cpt
注:在线查看模板需要用到示例中的excel,点击excelimport.xls下载。

另:如果模板中导入数据的单元格(设置了扩展属性并添加控件的单元格)从第6行开始,那么根据位置匹配导入的时候,Excel中数据就从第6行开始导入。

附件列表


主题: 专题总结
标签: 已验证

文档内容仅供参考,如果你需要获取更多帮助,请咨询帆软技术支持
关于技术问题,您还可以通过帆软论坛获取帮助,论坛上有非常多的大神,有些水平比帆软工程师还要高哦。
若您还有其他非技术类问题,可以联系帆软传说哥(微信ID:frbiaoge)