(本文档仅供参考)
现象
当电子表格数据太多,并且进行分页展示时,有可能会抛出错误“报表异常:The count of HPagesBreaks cannot be larger than 1024”。
该问题是由于Excel中对于“分页符”的个数是有限制的,不可以超过1024个分页符,导致电子表格在进行分页的情况下,也不可以超过1024页。
解决思路
此问题可以按照下面的思路进行排查和处理。
== Step1 =====
先检查数据集数据有多大,如果数据集数据量本身不大,但还是报这样的错误,检查报表是否设置了分页属性。
== Step 2=====
如果是数据集量比较大,且确实需要进行分页展示,请参考以下几种方案,酌情采用。
==》方案1:改用清单报表
如果报表的格式比较简单,只是报表表头+列头+数据形式的明细数据展示,建议使用电子表格中的“清单报表”类型。
如下,报表样式:
可以在Excel中“smartbi”页签下找到“页面设置”按钮,将报表类型选择为“清单报表”
详情请参考: 纯清单报表
==》方案2:减少数据量
尽可能对电子表格的数据集通过添加参数等方式进行过滤,减少报表的数据量。下面提供一种将数据按照1024页为一批的方式,进行分批展示的做法。
原始报表如下:
步骤1:在数据集中增加页数字段,页数从1开始递增,且属于同一页的数据的页数字段数据相同。
先根据目前的情况,确定电子表格中每一页展示多少条数据。并在电子表格的数据集中使用相应的sql函数等,增加一个页数字段。这个页数字段从1开始递增,且同一页的数据其页数是相同的。
如下例子,电子表格中每页显示4条数据,因此每4条数据的页数是一致的。且页数按照每4条的间隔递增
步骤2:对页数进行计算,为每一条数据增加批数字段
继续编辑数据集,根据页数进行计算,为属于同一批1024页的数据增加批数字段。比如第1页-1024页,属于第1批数;第1025页-2048页,属于第2批数;... ...
效果如下:
前1024页数据:
第2个1024页数据:
步骤3:增加批数参数
新建一个下拉框参数,将数据集的sql中的批数取出来,作为参数的真实值,并通过sql拼凑出“第X批数”作为显示值。如下:
步骤4:为电子表格数据集增加参数,实现选择批数功能
编辑步骤2中的数据集,在sql中添加where条件“where 批数数据=批数参数”,即可实现批数的切换
步骤5:保存数据集之后,重新预览电子表格。如下:
第一批数据:
第二批数据:
==》方案3:增大纸张大小
在Excel的页面布局中,设置纸张大小,比如原本是A4纸张,可以调整成A3纸张。增大纸张大小之后,页面能够显示的数据量也会增加,则分页符就会相应减少。