- 名前
- 概要
- 動作条件
- エクスポート
- 説明
- メソッド群
- クラス変数
- HISTORY 歴史
- AUTHOR 作者
- CONTRIBUTIONS 協力者
- COPYRIGHT 著作権
- SEE ALSO 関連項目
- Translators into Japanese 翻訳者
名前¶
HTML::Table - HTML テーブルを生成する
概要¶
use HTML::Table;
$table1 = new HTML::Table($rows, $cols);
または、
$table1 = new HTML::Table(-rows=>26,
-cols=>2,
-align=>'center',
-rules=>'rows',
-border=>0,
-bgcolor=>'blue',
-width=>'50%',
-spacing=>0,
-padding=>0,
-style=>'color: blue',
-class=>'myclass',
-head=> ['head1', 'head2'],
-data=> [ ['1:1', '1:2'], ['2:1', '2:2'] ] );
または、
$table1 = new HTML::Table( [ ['1:1', '1:2'], ['2:1', '2:2'] ] );
$table1->setCell($cellrow, $cellcol, 'This is Cell 1');
$table1->setCellBGColor('blue');
$table1->setCellColSpan(1, 1, 2);
$table1->setRowHead(1);
$table1->setColHead(1);
$table1->print;
$table2 = new HTML::Table;
$table2->addRow(@cell_values);
$table2->addCol(@cell_values2);
$table1->setCell(1,1, "$table2->getTable");
$table1->print;
動作条件¶
Perl5.002
エクスポート¶
なし
説明¶
HTML::Table は、CGI スクリプトにおいて HTML テーブルを作成するために使います。提供されるメソッド群を使用することで、非常に複雑なテーブルの生成、操作、そして出力が Perl スクリプトで可能となります。このモジュールでは、テーブル中にテーブルを作成する作業も Perl から非常に簡単にできるようになります。HTML タグを使用することなく、このモジュールで提供されるメソッド群を使用するだけで全ての機能を備えるテーブルを生成することが可能です。
HTML::Table は、addRow と addCol メソッドを使用することで、動的にサイズの変わるテーブルを作成することも出来ます。つまり、そのときのテーブルセル数を超える値が渡された場合に、これらメソッドはそれに適合するよう自動的にテーブルをリサイズします。
HTML 3.0 で規定されているテーブルに関するほとんど全てのタグ群について、対応するメソッドが提供されています。
この文章の日本語訳は次で利用できます:
http://member.nifty.ne.jp/hippo2000/perltips/html/table.htm
(訳者(2)追記;このページは、次に移動されております http://homepage3.nifty.com/hippo2000/perltips/html/table.htm)
メソッド群¶
角かっこ [ ] は、オプションのパラメータであることをを示しています。指定されない場合はデフォルト値が使われます。
row_num は、行数が必須であることを示しています。行は1から数えます。最後の行を参照するには、-1を使用します。
col_num は、列数が必須であることを示しています。列は1から数えます。最後の列を参照するには、-1を使用します。
生成¶
- new HTML::Table([num_rows, num_cols])
-
新しいHTML テーブル オブジェクトを生成します。行数と列数が指定されれば、テーブルはそのサイズで初期化されます。行と列の数は 1, 1 から始まります。0, 0 は、空のテーブルと解釈されます。
- new HTML::Table([ -rows=>num_rows, -cols=>num_cols, -border=>border_width, -align=>table_alignment, -style=>table_style, -class=>table_class, -bgcolor=>back_colour, -width=>table_width, -spacing=>cell_spacing, -padding=>cell_padding ])
-
新しいHTML テーブル オブジェクトを生成します。行数と列数が指定されれば、テーブルはそのサイズで初期化されます。行と列の数は 1, 1 から始まります。0, 0 は、空のテーブルと解釈されます。
(訳者(2)追記:蛇足ですが、引数の訳も付けます; -row => (列の数) -cols => (行の数) -border=> (枠の太さ) -align=> (テーブル自体の水平表示位置) -style=> (スタイル) -class=> (クラス) -bgcolor=> (背景色) -width=> (テーブルの幅) -spacing=> (セル同士の間隔) -padding=> (セル内の余白) )
テーブルに関するメソッド群¶
- setBorder([pixels])
-
テーブル枠の太さを設定します。
- setWidth([pixels|percentofscreen])
-
テーブルの幅を設定します。
$table->setWidth(500); または、 $table->setWidth('100%');
- setCellSpacing([pixels])
-
テーブル内セル同士の間隔を設定します。
- setCellPadding([pixels])
-
セル内の余白を設定します。
- setCaption("CaptionText" [, TOP|BOTTOM])
-
テーブルの見出しを設定します。
- setBGColor([colorname|colortriplet])
-
テーブルの背景色を設定します。
- autoGrow([1|true|on|anything|0|false|off|no|disable])
-
setCell で渡された行数または列数が現在のテーブルサイズを超える時に、テーブルを自動的に拡げる機能を使用する(デフォルト)/使用しないと切り替えます。
- setAlign ( [ LEFT , CENTER , RIGHT ] )
-
テーブルの水平方向表示位置を設定します。
- setRules ( [ ROWS , COLS , ALL, BOTH , GROUPS ] )
-
テーブル内枠の有無を設定します。
- setStyle ( 'css style' )
-
テーブルのスタイル属性を設定します。
- setClass ( 'css class' )
-
テーブルのクラス属性を設定します。
- setAttr ( 'user attribute' )
-
テーブルに、ユーザー定義の属性を設定します。HTML::Table で未だ提供されていない特殊な属性を設定するのに利用できます。
- sort ( [sort_col_num, sort_type, sort_order, num_rows_to_skip] )
-
または sort( -sort_col => sort_col_num, -sort_type => sort_type, -sort_order => sort_order, -skip_rows => num_rows_to_skip, -strip_html => strip_html, -strip_non_numeric => strip_non_numeric, -presort_func => �&filter_func ) sort_type は、 { ALPHA | NUMERIC }で指定(アルファベット順/数字順)、 sort_order は、 { ASC | DESC }で指定(昇順/降順)、 strip_html は、 { 0 | 1 }で指定(デフォルトは1) strip_non_numeric は、 { 0 | 1 },(デフォルトは1) 指定された行で全ての列をソートします(オプションとして、 num_rows_to_skip で指定されたテーブル先頭列まではスキップされます)。 デフォルトの動作としてソートではHTMLタグと を無視しますが、 strip_html パラメーターを0にすることでこの動作は無効になります。 デフォルトの動作として数値の大小でのソートは数字以外の文字を無視しますが、 strip_non_numeric パラメーターを0にすることでこの動作は無効になります。 ソート前に関数を適用することができ、例えば日付等でソートする前にセル内容の前処理をする場合に利用できます。
- getTableRows
-
テーブルの行数を返します。
- getTableCols
-
テーブルの列数を返します。
セルに関するメソッド群¶
- setCell(row_num, col_num, "content")
-
セルの内容を設定します。このことには任意の文字列、 getTable メソッド経由で他のテーブルオブジェクトですらも、可能です。指定した行・列がテーブル境界を越えている場合、自動的に行・列が拡げられます。
- setCellAlign(row_num, col_num, [CENTER|RIGHT|LEFT])
-
セル内容の水平位置を設定します。
- setCellVAlign(row_num, col_num, [CENTER|TOP|BOTTOM|MIDDLE|BASELINE])
-
セル内容の垂直位置を設定します。
- setCellWidth(row_num, col_num, [pixels|percentoftable])
-
セルの幅を設定します。
- setCellHeight(row_num, col_num, [pixels])
-
セルの高さを設定します。
- setCellHead(row_num, col_num)
-
セルを見出し項目にします(すなわち、<th></th>タグ)。
- setCellNoWrap(row_num, col_num, [0|1])
-
セル内文字の改行を禁止します。
- setCellBGColor(row_num, col_num, [colorname|colortriplet])
-
セルの背景色を設定します。
- setCellRowSpan(row_num, col_num, num_cells)
-
下方向へ結合したセルにします。指定したセル以下のセル数と比べて、結合する数が大きい場合には、間違った値が返されます(訳者(2)追記:私の環境では、num_cellsの値までテーブルを拡張し結合セルを作りました)。
- setCellColSpan(row_num, col_num, num_cells)
-
右方向へ結合したセルにします。指定したセル右側のセル数と比べて、結合する数が大きい場合には、間違った値が返されます(同上)。
- setCellSpan(row_num, col_num, num_rows, num_cols)
-
指定セルを基点としたセルブロックを結合します。結合する範囲は num_cols の幅、 num_rows の深さです。
- setCellFormat(row_num, col_num, start_string, end_string)
-
Start_string は有効なHTMLタグ文字列であるべきで、それがセル内容の前に出力されます。同様に end_string は有効なHTMLタグ文字列で、セル内容の後ろに出力されます。このことにより、セル内容のフォーマットが可能となります。
$table->setCellFormat(1, 2, '<b>', '</b>');
- setCellStyle (row_num, col_num, 'css style')
-
セルのスタイル属性を設定します。
- setCellClass (row_num, col_num, 'css class')
-
セルのクラス属性を設定します。
- setCellAttr (row_num, col_num, 'user attribute')
-
セルにユーザー定義の属性を設定します。HTML::Table が未だ提供していない特殊な属性を設定するのに利用できます。
- setLastCell*
-
全ての setCell メソッド群は、それらに対応する setLastCell メソッドを持っています。この setLastCell メソッドは row_num と col_num パラメータを受け取らず、自動的に最後列かつ最後行のセルへメソッドを適用します。
(訳者(2)追記:下手な訳より、以下の例の方が分かりやすいかと思います; my $t = new HTML::Table(3,3); $t -> setLastCell ('lastCell'); $t -> setLastCellBGColor ('#66cc66'); 次と同じです... my $t = new HTML::Table(3,3); $t -> setCell ('-1', '-1', 'lastCell'); $t -> setCellBGColor ('-1', '-1', '#66cc66');
)
- getCell(row_num, col_num)
-
指定されたセル内容を文字列として返します。
行に関するメソッド群¶
- addCol("cell 1 content" [, "cell 2 content", ...])
-
行をテーブルの右端に加えます。列の数よりも多くの値を渡すと、列を増やそうとしていると解釈されます。
- setColAlign(col_num, [CENTER|RIGHT|LEFT])
-
行に setCellAlign を適用します。
- setColVAlign(col_num, [CENTER|TOP|BOTTOM|MIDDLE|BASELINE])
-
行に setCellVAlign を適用します。
- setColWidth(col_num, [pixels|percentoftable])
-
行に setCellWidth を適用します。
- setColHeight(col_num, [pixels])
-
行に setCellHeight を適用します。
- setColHead(col_num)
-
行に setCellHead を適用します。
- setColNoWrap(col_num, [0|1])
-
行に setCellNoWrap を適用します。
- setColBGColor(row_num, [colorname|colortriplet])
-
行に setCellBGColor を適用します。
- setColFormat(col_num, start_string, end_sting)
-
行に setCellFormat を適用します。
- setColStyle (col_num, 'css style')
-
行に setCellStyle を適用します。
- setColClass (col_num, 'css class')
-
行に setCellClass を適用します。
- setColAttr (col_num, 'user attribute')
-
行に setCellAttr を適用します。
- setLastCol*
-
全ての setCol メソッド群は、それらへ対応する setLastCol メソッドを持っています。この setLastCol メソッドは col_num パラメータを受け取らず、自動的に最後行へメソッドを適用します。(訳者(2)追記;setLastCell*と同様)
列に関するメソッド¶
- addRow("cell 1 content" [, "cell 2 content", ...])
-
列をテーブルの最下部に加えます。行の数よりも多くの値を渡すと、行を増やそうとしていると解釈されます。
- setRowAlign(row_num, [CENTER|RIGHT|LEFT])
-
列に setCellAttr を適用します。
- setRowVAlign(row_num, [CENTER|TOP|BOTTOM|MIDDLE|BASELINE])
-
列に setCellVAlign を適用します。
- setRowWidth(row_num, [pixels|percentoftable])
-
列に setCellWidth を適用します。
- setRowHeight(row_num, [pixels])
-
列に setCellHeight を適用します。
- setRowHead(row_num)
-
列に setCellHead を適用します。
- setRowNoWrap(col_num, [0|1])
-
列に setCellNoWrap を適用します。
- setRowBGColor(row_num, [colorname|colortriplet])
-
列に setCellBGColor を適用します。
- setRowFormat(row_num, start_string, end_string)
-
列に setCellFormat を適用します。
- setRowStyle (row_num, 'css style')
-
列に setCellStyle を適用します。
- setRowClass (row_num, 'css class')
-
列に setCellClass を適用します。
- setRowAttr (row_num, 'user attribute')
-
列に setCellAttr を適用します。
- setLastRow*
-
全ての setRow メソッド群は、それらへ対応する setLastRow メソッドを持っています。この setLastRow メソッドは row_num パラメータを受け取らず、自動的に最後列へメソッドを適用します。(訳者(2)追記;setLastCell*と同様)
出力のメソッド群¶
- getTable
-
テーブルのHTML表記を含む内容を、文字列で返します。
文字列スカラーコンテキストでオブジェクトリファレンスを用いると、同じ効果が得られます。
例....
このコード断片は; $table = new HTML::Table(2, 2); print '<p>Start</p>'; print $table->getTable; print '<p>End</p>'; 以下と同様の出力を生成します; $table = new HTML::Table(2, 2); print "<p>Start</p>$table<p>End</p>";
-
テーブルのHTML表記を、 STDOUT に出力します。
クラス変数¶
HISTORY 歴史¶
This module was originally created in 1997 by Stacy Lacy and whose last version was uploaded to CPAN in 1998. The module was adopted in July 2000 by Anthony Peacock in order to distribute a revised version. This adoption took place without the explicit consent of Stacy Lacy as it proved impossible to contact them at the time. Explicit consent for the adoption has since been received.
このモジュールは最初 Stacy Lacy によって1997年に作成され、最後のバージョンは1998年にCPANにアップロードされました。修正されたバージョンを配布するため、このモジュールを2000年7月に Anthony Peacockhe が引き継ぎました。この引継は Stacy Lacy の明確な同意無しに行われました、なぜならその時に彼らと連絡をとることが不可能であると分かったからです。この引継に対する明確な同意は、未だ得られていません。
AUTHOR 作者¶
(原文のまま)
Anthony Peacock, [email protected] Stacy Lacy (Original author)
CONTRIBUTIONS 協力者¶
(原文のまま)
Jay Flaherty, [email protected] For ROW, COL & CELL HEAD methods. Modified the new method to allow hash of values.
John Stumbles, [email protected] For autogrow behaviour of setCell, and allowing alignment specifications to be case insensitive
Arno Teunisse, [email protected] For the methods adding rules, styles and table alignment attributes.
Ville Skytta, [email protected] For general fixes
Paul Vernaza, [email protected] For the setLast... methods
David Link, [email protected] For the sort method
Tommi Maekitalo, [email protected] For adding the 'head' parameter to the new method and for adding the initialisation from an array ref to the new method.
COPYRIGHT 著作権¶
(原文のまま)
Copyright (c) 2000-2003 Anthony Peacock, CHIME.
Copyright (c) 1997 Stacy Lacy
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO 関連項目¶
perl(1), CGI(3)
Translators into Japanese 翻訳者¶
1) Previous ver.: oota (at itp.nec.co.jp)
2) Ver. 2.02: anahori (at users.sourceforge.jp)
Japanized ?Perl?Resources? Project (http://sourceforge.jp/projects/perldocjp/)