素晴らしいコミュニティモジュール

アスキーテーブル

ビルドステータス devDependency ステータス NPMのバージョン

ノードのデバッグ用の簡単なテーブル出力ですが、単なる文字列であるため、さらに多くのことができるでしょう。

目次

使用法

Node.js

1
var AsciiTable = require('ascii-table')

ブラウザ

1
<script src="ascii-table.min.js"></script>

: ブラウザで使用する場合は、以下に配置されます。window.AsciiTable

基本的な使い方

1 2 3 4 5 6 7 8
var table = new AsciiTable('A Title') table .setHeading('', 'Name', 'Age') .addRow(1, 'Bob', 52) .addRow(2, 'John', 34) .addRow(3, 'Jim', 83) console.log(table.toString())
1 2 3 4 5 6 7 8 9
.----------------. | A Title | |----------------| | | Name | Age | |---|------|-----| | 1 | Bob | 52 | | 2 | John | 34 | | 3 | Jim | 83 | '----------------'

タイトルや見出しのないシンプルな表も作成できます。

1 2 3 4 5 6 7 8 9 10
var table = new AsciiTable() table .addRow('a', 'apple', 'Some longer string') .addRow('b', 'banana', 'hi') .addRow('c', 'carrot', 'meow') .addRow('e', 'elephants') console.log(table.toString())
1 2 3 4 5 6
.------------------------------------. | a | apple | Some longer string | | b | banana | hi | | c | carrot | meow | | e | elephants | | '------------------------------------'

API

Static Methods

アスキーテーブル

AsciiTable.factoryインスタンス化の詳細については、次を参照してください。

AsciiTable.factory([タイトル], [オプション])

テーブルインスタンス作成者

  • title- テーブルのタイトル (オプション、デフォルトnull)
  • options- テーブルオプション(オプション)
    • prefix- レンダリング時に各行に追加する文字列プレフィックス

注:の代わりにオブジェクトが渡された場合titlefromJSON メソッドを使用してテーブルにデータが設定されます。

例:

1 2 3 4 5 6 7 8 9 10
var table = AsciiTable.factory('title') var table = AsciiTable.factory({ title: 'Title' , heading: [ 'id', 'name' ] , rows: [ [ 1, 'Bob' ] , [ 2, 'Steve' ] ] })

AsciiTable.align(方向、値、長さ、[パッド])

次の 3 つの方法のいずれかへのショートカット

  • direction- 整列方向 ( AsciiTable.LEFTAsciiTable.CENTERAsciiTable.RIGHT)
  • val- 整列する文字列
  • len- 作成された文字列の合計長
  • pad- パディング / 埋め込み文字 (オプション、デフォルト' ')

例:

1
table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '

AsciiTable.alignLeft(val, len, [パッド])

  • val- 整列する文字列
  • len- 作成された文字列の合計長
  • pad- パディング / 埋め込み文字 (オプション、デフォルト' ')

例:

1
table.alignLeft('hey', 7, '-') // 'hey----'

AsciiTable.alignCenter(val, len, [パッド])

  • val- 整列する文字列
  • len- 作成された文字列の合計長
  • pad- パディング / 埋め込み文字 (オプション、デフォルト' ')

例:

1
table.alignCenter('hey', 7) // ' hey '

AsciiTable.alignRight(val, len, [パッド])

  • val- 整列する文字列
  • len- 作成された文字列の合計長
  • pad- パディング / 埋め込み文字 (オプション、デフォルト' ')

例:

1
table.alignRight('hey', 7) // ' hey'

AsciiTable.alignAuto(val, len, [パッド])

提供された のインテリジェントな位置合わせを試みますvalString入力は左揃えになり、Number型は右揃えになります。

  • val- 整列する文字列
  • len- 作成された文字列の合計長
  • pad- パディング / 埋め込み文字 (オプション、デフォルト' ')

例:

1
table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '

AsciiTable.arrayFill(len, [val])

指定された len で新しい配列を作成し、指定された値を入れます。主に内部的に使用されます。

  • len- 配列の長さ
  • val- 塗りつぶし値 (オプション)

例:

1
AsciiTable.arrayFill(4, 0) // [0, 0, 0, 0]

Instance Methods

instance.setBorder([エッジ], [塗りつぶし], [上], [下])

レンダリング用の境界線文字を設定します。引数が渡されない場合はデフォルトにリセットされます。単一のedge引数が渡された場合は、それがすべての境界線に使用されます。

  • edge- 水平エッジ (オプション、デフォルト|)
  • fill-垂直エッジ (オプション、デフォルト-)
  • top- 上隅 (オプション、デフォルト.)
  • bottom- 下隅 (オプション、デフォルト')

例:

1 2 3 4 5 6 7
var table = new AsciiTable('Stars') table .setBorder('*') .setHeading('oh', 'look') .addRow('so much', 'star power') console.log(table.toString())
1 2 3 4 5 6 7
************************ * Stars * ************************ * oh * look * ************************ * so much * star power * ************************

インスタンス.removeBorder()

例:

1 2 3
table.removeBorder() console.log('' + table)
1 2 3 4 5 6
# Fruit Thing --- ----------- -------------------- a apple Some longer string b banana hi c carrot meow e elephants

インスタンス.setAlign(idx, 方向)

  • idx-整列する列インデックス
  • direction- 整列方向、( AsciiTable.LEFTAsciiTable.CENTERAsciiTable.RIGHT)

例:

1 2 3 4 5
table .setAlign(2, AsciiTable.RIGHT) .setAlign(1, AsciiTable.CENTER) console.log(table.toString())
1 2 3 4 5 6
.-------------------------------------. | a | apple | Some longer string | | b | banana | hi | | c | carrot | meow | | e | elephants | | '-------------------------------------'

インスタンス.setAlignLeft(idx)

別名instance.setAlign(idx, AsciiTable.LEFT)

インスタンス.setAlignCenter(idx)

別名instance.setAlign(idx, AsciiTable.CENTER)

インスタンス.setAlignRight(idx)

別名instance.setAlign(idx, AsciiTable.RIGHT)

インスタンス.setTitle(タイトル)

  • title- テーブルのタイトル

例:

1 2 3
var table = new AsciiTable('Old Title') table.setTitle('New Title')

インスタンス.getTitle()

テーブルの現在のタイトルを取得します

例:

1
table.getTitle() // 'New Title'

インスタンス.setTitleAlign(方向)

  • direction- テーブルの整列方向

例:

1

インスタンス.setTitleAlignLeft()

別名instance.setTitleAlign(AsciiTable.LEFT)

インスタンス.setTitleAlignCenter()

別名instance.setTitleAlign(AsciiTable.CENTER)

インスタンス.setTitleAlignRight()

別名instance.setTitleAlign(AsciiTable.RIGHT)

インスタンス.ソート(イテレータ)

  • iterator- 行に対して実行するソートメソッド

例:

1 2 3 4
table.sort(function(a, b) { return a[2] - b[2] }) console.log(table.toString())
1 2 3 4 5
.----------------. | 2 | John | 34 | | 1 | Bob | 52 | | 3 | Jim | 83 | '----------------'

インスタンス.sortColumn(インデックス、イテレータ)

特定の列をターゲットにする並べ替えショートカット

  • index- ソートする列IDX
  • iterator- 列の値に対して実行するソート方法

例:

1 2 3 4
// This is quivalent to the `sort` example above table.sortColumn(2, function(a, b) { return a - b })

instance.setHeading(見出し, [...])

テーブルの列見出しを設定し、次と同じ方法で引数を受け取ります。addRow

  • heading- 見出し配列または引数

例:

1 2 3 4 5
table.setHeading('ID', 'Key', 'Value') // or: table.setHeading(['ID', 'Key', 'Value'])

インスタンス.setHeadingAlign(方向)

  • direction-

例:

1

インスタンス.setHeadingAlignLeft()

別名instance.setHeadingAlignLeft(AsciiTable.LEFT)

インスタンス.setHeadingAlignCenter()

別名instance.setHeadingAlignLeft(AsciiTable.CENTER)

インスタンス.setHeadingAlignRight()

別名instance.setHeadingAlignLeft(AsciiTable.RIGHT)

instance.addRow(行, [...])

行は単一の配列引数を使用して追加できます。メソッドの呼び出し時に複数の引数が使用される場合は引数を使用して追加できます。

  • row- 列値の配列または引数

例:

1 2 3 4 5 6 7
var table = new AsciiTable() table .addRow(1, 'Bob', 52) .addRow([2, 'John', 34]) console.log(table.render())
1 2 3 4
.---------------. | 1 | Bob | 52 | | 2 | John | 34 | '---------------'

インスタンス.addRowMatrix(行)

一括addRow操作

  • rows- 行の多次元配列

例:

1 2 3 4
table.addRowMatrix([ [2, 'John', 34] , [3, 'Jim', 83] ])

インスタンス.setJustify(有効)

すべての列を同じ幅になるように揃えます

  • enabled- 両端揃えをオンまたはオフにするためのブール値 ( undefinedtrue とみなされます)

例:

1 2 3 4 5
table .addRow('1', 'two', 'three') .setJustify() console.log(table.toString())
1 2 3
.-----------------------. | 1 | two | three | '-----------------------'

インスタンス.toString()

インスタンスを出力用の文字列としてレンダリングします。

別名: [ valueOfrender]

インスタンス.toJSON()

テーブルの JSON 表現を返します。これにより、 JSON.stringifyインスタンスを呼び出すこともできます。

例:

1 2 3 4 5 6 7 8 9
var table = new AsciiTable('Title') table .setHeading('id', 'name') .addRow(1, 'Bob') .addRow(2, 'Steve') console.log(table.toJSON()) console.log(JSON.stringify(table))
1 2 3 4 5 6 7 8
{ title: 'Title' , heading: [ 'id', 'name' ] , rows: [ [ 1, 'Bob' ] , [ 2, 'Steve' ] ] }
1
{"title":"Title","heading":["id","name"],"rows":[[1,"Bob"],[2,"Steve"]]}

インスタンス.fromJSON(obj)

json オブジェクトからテーブルにデータを入力します。toJSON上記の出力と一致する必要があります。

別名: [ parse]

例:

1 2 3 4 5 6 7 8
var table = new AsciiTable().fromJSON({ title: 'Title' , heading: [ 'id', 'name' ] , rows: [ [ 1, 'Bob' ] , [ 2, 'Steve' ] ] })

インスタンス.クリア()

すべてのテーブルデータをクリア/リセット

別名: [ reset]

インスタンス.clearRows()

すべての行データをリセットし、タイトルと見出しを維持します。

インストール

npmを使用する場合

1
npm install ascii-table

貢献者

マシュー・オリベイラ ピーター・ダム

ライセンス

(MITライセンス)

著作権 (c) 2013 ボー・ソレンセン

本ソフトウェアおよび関連ドキュメント ファイル (以下「ソフトウェア」) のコピーを入手した人には、使用、コピー、変更、マージする権利を含むがこれらに限定されない、制限なくソフトウェアを取り扱う許可が、ここに無償で与えられます。 、以下の条件を条件として、本ソフトウェアのコピーを出版、配布、サブライセンス、および/または販売すること、および本ソフトウェアが提供される人物にそれを許可すること。

上記の著作権表示およびこの許可通知は、ソフトウェアのすべてのコピーまたは主要部分に含まれるものとします。

ソフトウェアは「現状のまま」で提供され、明示的か黙示的かを問わず、商品性、特定目的への適合性、および非侵害の保証を含むがこれらに限定されない、いかなる種類の保証も行われません。契約行為、不法行為、その他を問わず、ソフトウェアまたはソフトウェアの使用またはその他の取引に起因または関連して生じる請求、損害、またはその他の責任。