设置表列宽
此示例显示如何设置 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);