[]
        
(Showing Draft Content)

按页面大小分页

概述

按页面大小分页,即当数据行超过模板页制定的页面大小时,就会生成一个新的页面。按页面大小分页的方式,适用于列表类型的报表,如购物清单、产品目录等。

按页面大小分页

默认情况下,按页面大小分页会有,有以下默认规则:

  • 页眉和页脚不会在每一页上重复出现,仅在文档的开头和结尾各出现一次。

  • 跨页面的合并单元格,其数据仅在该单元格第一次出现的位置有数据。

image


但对于上述默认规则,如上图所示,出现了数据被分割后,合并的单元格在跨页时,也被分开。数据也只显示一次等等问题,为了处理这些情况,GcExcel提供了以下属性:

  • RepeatWithGroup

  • RepeatOutput

  • KeepTogether

  • AttachTo

RepeatWithGroup 属性

语法:

image

RepeatWithGroup 属性,主要用于列表的标题,希望标题能随着模板数据,在跨页时随着每个分组重复多出现一次。

RepeatWithGroup 会影响整行或者整列:

  • 当引用的单元格,纵向扩展时,RepeatWithGroup 会影响整行

  • 当引用的单元格,横向扩展时,RepeatWithGroup 会影响整列

示例:

下图显示了在B5单元格指定了 RepeatWithGroup = B6。与默认分页结果相比,随着 B6 单元格的扩展,在第二页中,CompanyA 的表格虽然被分开,但表头仍然显示出来。在第三页中,CompanyC 的表格虽然被分开,但表头也会显示出来。

image

结果如下:

image

RepeatOutput 属性

语法:

image

RepeatOutput 属性指定合并单元格,或者数据扩展导致的合并单元格,在因为跨页被分割时,单元格的值如何显示。

  • True:在分割合并单元格的每一页都显示数据。

  • False:仅在单元格第一次处显示,显示数据。

示例:

下图显示了在 B6 单元格指定了 RepeatOutput=true, 同时 B5 单元格也设置了 RepeatWithGroup 属性。

与默认分页结果相比,在第二页中,CompanyA 的 ClientE 单元格被分开,但其数据,在第一页与第二页中均有显示。

image

结果如下:

image

KeepTogether 属性

语法:

image

KeepTogether 属性用来表示,当前设置该属性的单元格及其子孙单元格,是否尽量保持在同一页面上。

  • None(默认值): 不保证内容在同一页,随着分页而分割数据内容。

  • Horizontal: 在水平分页时,尽可能将单元格及其子孙单元格保持在同一页上。

  • Vertical: 在垂直分页时,尽可能将单元格及其子孙单元格保持在同一页上。

  • Both: 在水平或垂直分页时,尽可能将单元格及其子孙单元格保持在同一页上。

KeepTogether 属性并不能做到一定保证数据只出现在一页上,其规则如下:

  • 当分组数据在当前页面容纳不下时,会放在一个新的页面中

  • 当分组数据已经独占一个页面,但仍然不能容纳下时,会分割分组数据,把剩余部分放在新的页面中。

示例:

如下示例,B4 单元格设置了 KeepTogether = Vertical。

与默认分页结果相比,CompanyA 的数据,因为单独一页放不下,因此被分割开。CompanyC 的数据,因为第二页无法容纳,整个部分被移动到第三页。

image

结果如下:

image

AttachTo 属性

语法:

image

AttachTo 属性允许您将单元格模板与另一个单元格绑定,当因为跨页分割时,会是的它们同时出现。该属性引用要附加到特定单元格。

AttachTo 会影响整行或者整列:

  • 当引用的单元格,纵向扩展时,AttachTo 会影响整行

  • 当引用的单元格,横向扩展时,AttachTo 会影响整列

示例:

如下示例,B7 单元格设置了 AttachTo = B6。即 Subtotal 需要和 B6 扩展出来的单元格保持一致。

可以看到第二页和第三页,Subtotal 均拉了前一页 B6 所扩展出来的一行数据,显示在了一起。

image

结果如下:

image

AttachTo 避免的结果如下,Subtotal显示在了第一行:

image