Main Content

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

设置表列宽

此示例显示如何设置 DOM TableFormalTable 的列宽。

导入 DOM API 命名空间,这样您就不必使用长而完全限定的类名。

import mlreportgen.dom.*

创建并打开一个文档。要创建 Word 文档,请将输出类型从 pdf 更改为 docx。要创建 HTML 文档,请分别将 pdf 更改为 htmlhtml-file,以用于多文件或单文件文档。

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

定义表格、表格条目和标题行样式,将在后面的部分中使用。

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

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

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

定义表头行和表体的内容,稍后将用于创建三列 DOM TableFormalTable

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

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

以下代码使用 DOM TableColSpecGroup 为表中的一组列定义样式。将 Span 属性设置为 3 会将组格式应用于表的所有三列。要格式化组中一个或多个相邻的表列,请使用 DOM TableColSpec 对象。第一个 TableColSpec 对象 specs(1) 跨越到组中的第一个 2 列。在其 Style 属性中设置 Width 格式,使这两列各自为表格宽度的 20%。第二个 TableColSpec 对象 specs(2) 跨越单列,即组中的第三列,并格式化为表格宽度的 60%

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;

以下代码将标题和 DOM Table 追加到文档。将上面代码中创建的 grps 分配给表的 ColSpecGroups 属性,使得前两列占表宽的 20%,第三列占表宽的 60%。代码还为表格、表格条目和表格的第一行分配样式。

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);

以下代码将标题和 DOM FormalTable 追加到文档。将 grps 分配给正式表格的 ColSpecGroups 属性,使得前两列占表格宽度的 20%,第三列占表格宽度的 60%。代码还为正式表格、表格条目和正式表格的标题行分配样式。

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);