exponenta event banner

mlreportgen.utils.TaureSlicer класс

Пакет: mlreportgen.utils
Суперклассы:

Разделить таблицу на фрагменты

Описание

Разделяет таблицу по вертикали на набор более узких таблиц (срезов). Чтобы разделить таблицу, которая слишком широка для разборчивого размещения на странице, на набор разборчивых фрагментов, используйте это TableSlicer объект.

Строительство

slicer = mlreportgen.utils.TableSlicer() создает пустой объект среза таблицы. Используйте его свойства, чтобы указать входную таблицу для фрагмента, максимальное количество столбцов на фрагмент и количество столбцов для повторения.

Примечание

Чтобы разделить таблицу, созданную mlreportgen.report.BaseTable репортер, установите MaxCols имущества BaseTable в соответствии с размером фрагментов, которые требуется создать. Вам не нужно использовать это TableSlicer для установки ширины фрагмента.

slicer = mlreportgen.utils.TableSlicer(Name,Value) создает объект среза таблицы с дополнительными опциями, заданными одним или несколькими Name,Value аргументы пары. Name - имя свойства и Value - соответствующее значение. Name должно появляться внутри одиночного ('') или двойной ("") цитаты. Можно указать несколько аргументов пары имя-значение в любом порядке как Name1,Value1,...,NameN,ValueN.

Свойства

развернуть все

Объект входной таблицы, подлежащий разделению, указанный как объект таблицы DOM или объект формальной таблицы. Для входных данных DOM Table и Formal Table таблица должна иметь одинаковое количество столбцов в каждой строке. Его RowSpan и ColSpan значения должны быть пустыми [] или 1. Если объект Formal Table имеет колонтитулы, количество колонтитулов должно соответствовать количеству столбцов в теле таблицы.

Максимальное количество столбцов, отображаемых на срез таблицы, указанное как Inf или как положительное целое число. Если это свойство имеет значение Infвсе исходные столбцы таблицы включаются в одну таблицу. A MaxCols значение, большее или равное количеству столбцов таблицы, также создает одну таблицу со всеми столбцами. Большие наборы данных таблицы могут привести к созданию неразборчивых таблиц. Задайте для этого свойства количество столбцов из исходной таблицы, которые разборчиво помещаются на странице. Чтобы определить оптимальное значение, выполните итерацию, задав значение MaxCol значение и просмотр отчета.

Число начальных столбцов, повторяющихся на фрагмент, указанное как 0 или положительное целое число. Ненулевое число n повторяет первые n столбцов исходной таблицы в каждом фрагменте. MaxCols значение свойства включает в себя RepeatCols значение свойства. Например, если MaxCols равно 6 и RepeatCols равно 2, каждый фрагмент таблицы имеет в общей сложности шесть столбцов с первыми двумя столбцами, повторенными из исходной таблицы.

Методы

slices = slice(slicer) возвращает массив mlreportgen.utils.TableSlice объекты, каждый из которых содержит фрагмент таблицы и индексы начального и конечного столбцов фрагмента. Индексы начального и конечного столбцов относятся к индексам столбцов исходной входной таблицы.

Примеры

свернуть все

Создайте объект Table, содержащий данные сотрудника. Разделите таблицу так, чтобы первый столбец таблицы повторялся в каждом фрагменте, а максимальное количество столбцов в каждом фрагменте составляло три.

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