跨sheet计算,跨sheet取数,多sheet取数,sheet1中怎么获取sheet3中单元格的数据,sheet1中怎么获取sheet2中单元格的数据,sheet2中怎么获取sheet1中单元格的数据,多sheet填报表,获取sheet名字
1. 问题描述
报表之间可以通过参数或超链接等传递数据,同一个模板中多个sheet间是无法用参数和超级链接进行传值的,那如何实现在一个sheet中取另外一个sheet某个单元格的值即如何实现跨sheet取数呢?
2. 实现思路
FineReport报表中通过使用:sheetname!cellname来实现跨sheet取值。但若sheetname中包含中划线、下划线等特殊字符就需要给sheetname加上单引号,则公式为:'sheetname'!cellname。
3. 示例
下面我们使用多sheet填报的简单例子来实现订单sheet中的总金额是订单明细sheet中的某个单元格数据+当前sheet某个单元格的值。
3.1 打开模板
打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\MultiSheetReport\MultiSheet.cpt。
3.2 订单sheet修改
右击D8单元格,选择清除>内容,然后在D8单元格中填入公式:='订单明细'!H4+B6,即D8的值是订单明细表中的H4单元格的值加上当前sheetB6单元格的值。
注:计算时,一定要勾上“填报/分析时,保留公式用于计算”前面的选择框。
3.3 订单明细sheet修改
在H4单元格填入公式:=C4*D4*(1-E4),然后将H4的列宽隐藏。 3.4 效果查看
具体的模板设置可参考模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\MultiSheetReport\MultiSheet1.cpt