[]
按页面大小分页,即当数据行超过模板页制定的页面大小时,就会生成一个新的页面。按页面大小分页的方式,适用于列表类型的报表,如购物清单、产品目录等。
默认情况下,按页面大小分页会有,有以下默认规则:
页眉和页脚不会在每一页上重复出现,仅在文档的开头和结尾各出现一次。
跨页面的合并单元格,其数据仅在该单元格第一次出现的位置有数据。
但对于上述默认规则,如上图所示,出现了数据被分割后,合并的单元格在跨页时,也被分开。数据也只显示一次等等问题,为了处理这些情况,GcExcel提供了以下属性:
RepeatWithGroup
RepeatOutput
KeepTogether
AttachTo
语法:
RepeatWithGroup 属性,主要用于列表的标题,希望标题能随着模板数据,在跨页时随着每个分组重复多出现一次。
RepeatWithGroup 会影响整行或者整列:
当引用的单元格,纵向扩展时,RepeatWithGroup 会影响整行
当引用的单元格,横向扩展时,RepeatWithGroup 会影响整列
示例:
下图显示了在B5单元格指定了 RepeatWithGroup = B6。与默认分页结果相比,随着 B6 单元格的扩展,在第二页中,CompanyA 的表格虽然被分开,但表头仍然显示出来。在第三页中,CompanyC 的表格虽然被分开,但表头也会显示出来。
结果如下:
语法:
RepeatOutput 属性指定合并单元格,或者数据扩展导致的合并单元格,在因为跨页被分割时,单元格的值如何显示。
True:在分割合并单元格的每一页都显示数据。
False:仅在单元格第一次处显示,显示数据。
示例:
下图显示了在 B6 单元格指定了 RepeatOutput=true, 同时 B5 单元格也设置了 RepeatWithGroup 属性。
与默认分页结果相比,在第二页中,CompanyA 的 ClientE 单元格被分开,但其数据,在第一页与第二页中均有显示。
结果如下:
语法:
KeepTogether 属性用来表示,当前设置该属性的单元格及其子孙单元格,是否尽量保持在同一页面上。
None(默认值): 不保证内容在同一页,随着分页而分割数据内容。
Horizontal: 在水平分页时,尽可能将单元格及其子孙单元格保持在同一页上。
Vertical: 在垂直分页时,尽可能将单元格及其子孙单元格保持在同一页上。
Both: 在水平或垂直分页时,尽可能将单元格及其子孙单元格保持在同一页上。
KeepTogether 属性并不能做到一定保证数据只出现在一页上,其规则如下:
当分组数据在当前页面容纳不下时,会放在一个新的页面中
当分组数据已经独占一个页面,但仍然不能容纳下时,会分割分组数据,把剩余部分放在新的页面中。
示例:
如下示例,B4 单元格设置了 KeepTogether = Vertical。
与默认分页结果相比,CompanyA 的数据,因为单独一页放不下,因此被分割开。CompanyC 的数据,因为第二页无法容纳,整个部分被移动到第三页。
结果如下:
语法:
AttachTo 属性允许您将单元格模板与另一个单元格绑定,当因为跨页分割时,会是的它们同时出现。该属性引用要附加到特定单元格。
AttachTo 会影响整行或者整列:
当引用的单元格,纵向扩展时,AttachTo 会影响整行
当引用的单元格,横向扩展时,AttachTo 会影响整列
示例:
如下示例,B7 单元格设置了 AttachTo = B6。即 Subtotal 需要和 B6 扩展出来的单元格保持一致。
可以看到第二页和第三页,Subtotal 均拉了前一页 B6 所扩展出来的一行数据,显示在了一起。
结果如下:
AttachTo 避免的结果如下,Subtotal显示在了第一行: