テーブルの列幅の設定
この例では、DOM Table
と DOM 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) ... };
テーブル ヘッダー行とテーブル本体のコンテンツを定義します。これは、後で 3 列の DOM Table
と DOM FormalTable
を作成するために使用します。
headerContent = ... { ... 'First Name', 'Last Name', 'Address' ... }; bodyContent = ... { ... 'John', 'Smith', 'Natick, MA'; ... 'Jane', 'Doe', 'Boston, MA'; ... 'Robert', 'Stewart', 'Natick, MA' ... };
以下のコードは、DOM TableColSpecGroup
を使用して、テーブル内の列のグループについてスタイルを定義します。Span
プロパティを 3
に設定すると、テーブルの 3 つの列すべてにグループの書式設定が適用されます。グループ内の 1 つ以上の隣接するテーブル列を書式設定するには、DOM TableColSpec
オブジェクトを使用します。最初の TableColSpec
オブジェクト specs(1)
は、グループの最初の 2
列にまたがります。Style
プロパティで Width
書式を設定して、これら 2 つの列のそれぞれがテーブルの幅の 20%
になるようにします。2 番目の TableColSpec
オブジェクト specs(2)
は、単一の列、つまりグループの 3 番目の列にまたがり、テーブルの幅の 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
プロパティに割り当てると、最初の 2 列がテーブルの幅の 20% になり、3 番目の列が 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
プロパティに割り当てると、最初の 2 列がテーブルの幅の 20% になり、3 番目の列が 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);