Main Content

本页采用了机器翻译。点击此处可查看最新英文版本。

mlreportgen.utils.TableSlicer 类

命名空间: mlreportgen.utils

将表分成几部分

描述

将表垂直分成一组较窄的表(切片)。要将太宽而无法在页面上清晰显示出来的表格分成一组清晰可见的片段,请使用此 TableSlicer 对象。

mlreportgen.utils.TableSlicer 类是一个 handle 类。

创建对象

描述

slicer = mlreportgen.utils.TableSlicer 创建一个空的表切片器对象。使用其属性指定要切片的输入表、每个切片的最大列数以及要重复的列数。

注意

要对由 mlreportgen.report.BaseTable 报告器生成的表进行切片,请将 BaseTable 报告器的 MaxCols 属性设置为要生成的切片的大小。您不需要使用此 TableSlicer 实用程序来设置切片宽度。

slicer = mlreportgen.utils.TableSlicer(Name=Value) 创建一个表切片器对象,其中包含由一个或多个 Name=Value 对参量指定的附加选项。Name 是属性名称,Value 是相应的值。您可采用任意顺序指定多个名称-值对组参量,例如 Name1=Value1,...,NameN=ValueN

示例

属性

全部展开

输入要切片的表对象,指定为 DOM 表对象或正式表对象。对于 DOM 表和正式表输入,表的每一行必须具有相同数量的列。其 RowSpanColSpan 值必须为空 [] 或 1。如果正式表格对象有页眉或页脚,则页眉或页脚的列数必须与表体中的列数相匹配。

每个表切片显示的最大列数,指定为 Inf 或正整数。如果该属性的值为 Inf,则所有原始表列都包含在单个表中。大于或等于表列数的 MaxCols 值也会生成包含所有列的单个表。大型表格数据集可能会导致生成难以辨认的表格。将此属性设置为原始表中可在一页上清晰显示的列数。为了确定最佳值,请迭代设置 MaxCols 值并查看报告。

每个切片重复的初始列数,指定为 0 或正整数。非零数字 n 在每个切片中重复原始表的前 n 列。MaxCols 属性值包括 RepeatCols 属性值。例如,如果 MaxCols 为 6 且 RepeatCols 为 2,则每个表切片共有六列,其中前两列与原始表重复。

方法

全部展开

示例

全部折叠

创建一个包含员工数据的 FormalTable 对象。对表格进行切分,使得第一列在每个切分中重复,并且每个切分中的最大列数为三。

employee_data = {...
   'Joe Smith','3/12/06','Engineer','A302';...
   'Mary Jones','4/17/03','Writer','C312';...
   'John Johnson','9/5/12','Sr. Programmer','A421';...
   'Susan White','6/29/16','Sr. Engineer','B201';...
   'Thomas Lee','10/1/17','QE Engineer','C200'};
tbl_header = {'Name','Hire Date','Position','Office'};


import mlreportgen.report.*
import mlreportgen.dom.*
import mlreportgen.utils.*
     
rpt = mlreportgen.report.Report("Sliced Table",'pdf');
open(rpt);

chapter = Chapter("Title",'Employee Report');
table = FormalTable(tbl_header,employee_data);
table.Border = 'Solid';
table.RowSep = 'Solid';
table.ColSep = 'Solid';

para = Paragraph(['The table is sliced into two tables, '...
   'with the first column repeating in each table.']);
para.Style = {OuterMargin('0in','0in','0in','12pt')};
para.FontSize = '14pt';
add(chapter,para)

slicer = TableSlicer("Table",table,"MaxCols",3,"RepeatCols",1);
totcols = slicer.MaxCols - slicer.RepeatCols;
slices = slicer.slice();
for slice=slices
     str = sprintf('%d repeating column and up to %d more columns',...
          slicer.RepeatCols,totcols);
     para = Paragraph(str);
     para.Bold = true;
     add(chapter,para)
     add(chapter,slice.Table)
end

add(rpt,chapter)
close(rpt)
rptview(rpt)

版本历史记录

在 R2018b 中推出