mlreportgen.utils. Класс TableSlicer

Пакет: 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 и для Формальных Табличных входных параметров, таблица должна иметь одинаковое число столбцов в каждой строке. Его RowSpan и значениями ColSpan должен быть пустой [] или 1. Если Формальный Объект таблицы имеет заголовки или нижние колонтитулы, количество заголовка или столбцов нижнего колонтитула должно совпадать с количеством столбцов в табличном теле.

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

Количество первоначальных столбцов, чтобы повториться на срез, заданный как 0 или положительное целое число. Ненулевой номер, n, повторяет первые n столбцы исходной таблицы в каждом срезе. Значение свойства 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