mlreportgen.utils.TableSlicer class

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

Разделите таблицу на срезы

Описание

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

Конструкция

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

Примечание

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

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

Свойства

расширить все

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

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

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

Методы

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

Примеры

свернуть все

Создайте объект 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