Main Content

cell 配列からのテーブルの作成

この例では、cell 配列を使用していくつかの異なるデータ型のデータを表示するテーブルを作成する方法を示します。

ドキュメントとスタイルの設定

次のコードは、サンプル テーブルの書式設定に使用されるドキュメントおよびテーブルのスタイルを設定します。

長い完全修飾クラス名を使用せずに済むよう、DOM パッケージをインポートします。

import mlreportgen.dom.*

ドキュメントを作成して開きます。PDF ドキュメントを作成するには、出力タイプを docx から pdf に変更します。HTML ドキュメントを作成するには、docx を、複数ファイル ドキュメントの場合は html に、単一ファイル ドキュメントの場合は html-file にそれぞれ変更します。

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

テーブルとテーブルのヘッダー セクションのスタイルを定義します。

tableStyles = { ColSep("solid"), ...
                RowSep("solid"), ...
                Border("solid") };
            
tableHeaderStyles = { BackgroundColor("lightgray"), ...
                      Bold(true) };

テーブルの作成

テーブル コンストラクターで cell 配列を使用して、複数のデータ型のデータからテーブルを作成します。cell 配列には、double、string、文字ベクトル、DOM オブジェクト、およびその他の配列を含めることができます。この例では、形式的テーブルを使用します。これは、本体セクションに加えて、オプションでヘッダー セクションおよびフッター セクションをもつテーブルです。

テーブル ヘッダーに表示するラベルを定義します。ヘッダー ラベルは string であるため、cell 配列ではなく string 配列に格納されます。

headerLabels = ["Book", "Year Published", "Characters"];

テーブル本体に表示するデータを定義します。テーブル データは、外部リンク、数値、および string 配列を含んでいるため、cell 配列に格納されます。

book1 = ExternalLink("https://en.wikipedia.org/wiki/The_Three_Musketeers", ...
                     "The Three Musketeers");
book2 = ExternalLink("https://en.wikipedia.org/wiki/Little_Women", ...
                     "Little Women");
book3 = ExternalLink("https://en.wikipedia.org/wiki/The_Hound_of_the_Baskervilles", ...
                     "The Hound of the Baskervilles");

books = {book1; book2; book3};

yearPublished = {1844; 1868; 1902};

characters = { ["d'Artagnan", "Athos", "Porthos", "Aramis"]; ...
               ["Meg", "Jo", "Beth", "Amy"]; ...
               ["Sherlock", "Watson"] };

tableData = [books, yearPublished, characters]
tableData=3×3 cell array
    {1×1 mlreportgen.dom.ExternalLink}    {[1844]}    {1×4 string}
    {1×1 mlreportgen.dom.ExternalLink}    {[1868]}    {1×4 string}
    {1×1 mlreportgen.dom.ExternalLink}    {[1902]}    {1×2 string}

ヘッダー ラベルとテーブル データを含むテーブルを作成します。テーブル データの単一行 string 配列は、テーブルの構成時に DOM UnorderedList オブジェクトに変換されます。

cellTbl = FormalTable(headerLabels,tableData);

テーブルとテーブル ヘッダーのスタイルを以前に定義したスタイルに設定します。テーブル エントリのコンテンツがテーブル エントリの境界から 2 ポイントのスペースで区切られるように、テーブル エントリの内側の余白を設定します。テーブルをドキュメントに追加します。

cellTbl.Style = [cellTbl.Style, tableStyles];
cellTbl.Header.Style = [cellTbl.Header.Style, tableHeaderStyles];
cellTbl.TableEntriesInnerMargin = "2pt";
append(d,cellTbl);

ドキュメントを閉じて表示します。

close(d);
rptview(d);

参考

|

関連するトピック