Установите ширину столбца таблицы

Этот пример показывает, как установить ширину столбцов для Table DOM и FormalTable.

Импортируйте пакет API DOM, таким образом, вы не должны использовать долго, полностью определенные имена классов.

import mlreportgen.dom.*

Создайте и откройте документ. Чтобы создать документ Word, измените выходной тип от pdf до docx. Чтобы создать документ HTML, измените pdf на html или html-file для многофайлового или однофайлового документа, соответственно.

d = Document("mydoc","pdf");
open(d);

Таблица Define, записи таблицы и стили строки заголовка, которые будут использоваться в более поздних разделах.

tableStyle = ...
    { ...
    Width("100%"), ...
    Border("solid"), ...
    RowSep("solid"), ...
    ColSep("solid") ...
    };

tableEntriesStyle = ...
    { ...
    HAlign("center"), ...
    VAlign("middle") ...
    };

headerRowStyle = ...
    { ...
    InnerMargin("2pt","2pt","2pt","2pt"), ...
    BackgroundColor("gray"), ...
    Bold(true) ...
    };

Задайте содержимое для табличной строки заголовка и табличного тела, которое будет использоваться позже, чтобы создать Table DOM с тремя столбцами и FormalTable.

headerContent = ...
    { ...
    'First Name', 'Last Name', 'Address' ...
    };

bodyContent = ...
    { ...
    'John', 'Smith', 'Natick, MA'; ...
    'Jane', 'Doe', 'Boston, MA'; ...
    'Robert', 'Stewart', 'Natick, MA' ...
    };

Следующий код использует TableColSpecGroup DOM, чтобы задать стили для группы столбцов в таблице. Установка свойства Span к 3 применяет форматирование группы ко всем трем столбцам таблицы. Чтобы отформатировать один или несколько смежных столбцов таблицы в группе, используйте объекты TableColSpec DOM. Первый объект TableColSpec, specs(1), охватывает к первым столбцам 2 в группе. Установите формат Width в его свойстве Style сделать каждый из этих двух столбцов 20% таблицы width. Второй объект TableColSpec, specs(2), охватывает к отдельному столбцу, то есть, третьему столбцу в группе, и отформатирован, чтобы быть 60% таблицы width.

grps(1) = TableColSpecGroup;
grps(1).Span = 3;

specs(1) = TableColSpec;
specs(1).Span = 2;
specs(1).Style = {Width("20%")};

specs(2) = TableColSpec;
specs(2).Span = 1;
specs(2).Style = {Width("60%")};

grps(1).ColSpecs = specs;

Следующий код добавляет заголовок и Table DOM к документу. Присвоение grps, созданного в вышеупомянутом коде, к свойству ColSpecGroups таблицы, делает первые 2 столбца 20% и третий столбец 60% таблицы width. Код также присваивает стили для таблицы, записей таблицы и первой строки таблицы.

append(d,Heading1("Set column width for a DOM Table"));

tableContent = [headerContent; bodyContent];

table = Table(tableContent);
table.ColSpecGroups = grps;

table.Style = tableStyle;
table.TableEntriesStyle = tableEntriesStyle;

firstRow = table.Children(1);
firstRow.Style = headerRowStyle; 

append(d,table);

Следующий код добавляет заголовок и FormalTable DOM к документу. Присвоение grps к свойству ColSpecGroups формальной таблицы делает первые 2 столбца 20% и третий столбец 60% таблицы width. Код также присваивает стили для формальной таблицы, записей таблицы и строки заголовка формальной таблицы.

append(d,Heading1("Set column width for a DOM FormalTable"));

formalTable = FormalTable(headerContent,bodyContent);
formalTable.ColSpecGroups = grps;

formalTable.Style = tableStyle;
formalTable.TableEntriesStyle = tableEntriesStyle;

headerRow = formalTable.Header.Children;
headerRow.Style = headerRowStyle; 

append(d,formalTable);

Закройте и просмотрите документ.

close(d);
rptview(d);