设置表列宽
此示例显示如何设置 DOM Table 和 FormalTable 的列宽。

导入 DOM API 命名空间,这样您就不必使用长而完全限定的类名。
import mlreportgen.dom.*创建并打开一个文档。要创建 Word 文档,请将输出类型从 pdf 更改为 docx。要创建 HTML 文档,请分别将 pdf 更改为 html 或 html-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 Table 和 FormalTable。
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 列。在其 Width 属性中设置 Style 格式,使这两列各自为表宽度的 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);
