导入Excel,Excel导入不定行,excel中的值为名称而存到数据库中的是编码,提交入库,填报Excel导入
1. 问题描述
在对Excel数据进行复制到填报单元格时,若填报表式空的,需要点击插入行使之有足够的行才能进行填报,很麻烦,那么有没有一种简单的方法能解决这种问题呢?
2. 实现思路
为了解决如上问题,FineReport提供了Excel在线导入功能。您只需要将导入[Excel]按钮设置在工具栏上,然后设置单元格的控件类型并将报表的单元格设置成从上到下扩展,另外Excel中的第一行数据要和填报表中的数据对应即可实现在线导入Excel。
注:若在报表环境中可以正确导入Excel,而在您自己的项目中导入Excel时提示“正在加载”最后无法导入数据,请查看您项目中的过滤器是否对请求设置了拦截。
3. 示例
3.1 打开模板
打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\LineForm\LineForm.cpt。
3.2 表样修改
批量选中B3到K3,右击选择清除>内容即可,最终表样如下:
注:若直接点击制作模板,要将单元格的扩展属性设置为从上到下扩展,否则不能导入固定行数据。
另:若导入的报表中不是空白的填报表,而是有取数的功能,则需要将报表的最左父格设置为列表显示。
3.3 增加数据集
增加数据集ds2,SQL语句为:SELECT * FROM [供应商]。
再增加一个数据集ds3,SQL语句为:SELECT * FROM [产品类别]。
3.4 报表填报属性修改
由于D3单元格和E3单元格读取出来导入进来的是名称,而实际存到数据库中的是ID,因此要在报表填报属性处将D3和E3的值通过map函数转换成对应的ID,最终的报表填报属性如下: 3.5 导入Excel设置
选择报表>报表Web属性>填报页面设置,选择我要为这张模板单独设置,然后勾选使用工具栏,然后点击编辑按钮,选择导入[Excel]按钮,将其拖入到工具栏中即可。
3.6 效果查看
点击填报预览,在BS端数据是空的,如下图:
点击导入[Excel]按钮,弹出文件路径选择对话框,选择与之对应的Excel,打开文件,就可以将Excel中的数据读到当前报表中了,如下:
具体的模板设置可参考:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\LineForm\LineForm1.cpt。
注:6.5.5版本暂时不支持大写后缀名即.XLS文件的导入。
返回顶部