Fantastico modulo community community

Tabella Ascii

Stato di costruzione Stato dipendenza dev Versione NPM

Output della tabella semplice per il debug del nodo, ma probabilmente potresti fare di più con esso, poiché è solo una stringa.

Sommario

Utilizzo

Nodo.js

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

Browser

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

Nota : se si utilizza nel browser, verrà posizionato sottowindow.AsciiTable

Esempio

Utilizzo di base

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 | '----------------'

Possiamo anche creare una semplice tabella senza titolo o titoli.

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

Vedi: AsciiTable.factoryper i dettagli sull'istanziazione

AsciiTable.factory([titolo], [opzioni])

Creatore di istanze di tabella

  • title-titolo della tabella (opzionale, predefinito null)
  • options -opzioni tabella (opzionale)
    • prefix -string prefisso da aggiungere a ogni riga durante il rendering

Nota: se viene passato un oggetto al posto dititle, ilfromJSON metodo verrà utilizzato per popolare la tabella.

Esempio:

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(direction, val, len, [pad])

Collegamento a uno dei tre metodi seguenti

  • direction- Direzione di allineamento ( AsciiTable.LEFT, AsciiTable.CENTER, AsciiTable.RIGHT)
  • val -stringa da allineare
  • len -lunghezza totale della stringa creata
  • pad-padding / fill char (opzionale, predefinito ' ')

Esempio:

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

AsciiTable.alignLeft(val, len, [pad])

  • val -stringa da allineare
  • len -lunghezza totale della stringa creata
  • pad-padding / fill char (opzionale, predefinito ' ')

Esempio:

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

AsciiTable.alignCenter(val, len, [pad])

  • val -stringa da allineare
  • len -lunghezza totale della stringa creata
  • pad-padding / fill char (opzionale, predefinito ' ')

Esempio:

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

AsciiTable.alignRight(val, len, [pad])

  • val -stringa da allineare
  • len -lunghezza totale della stringa creata
  • pad-padding / fill char (opzionale, predefinito ' ')

Esempio:

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

AsciiTable.alignAuto(val, len, [pad])

Tentativo di eseguire l'allineamento intelligente di fornito val, l' Stringinput sarà allineato a sinistra, i Numbertipi saranno allineati a destra.

  • val -stringa da allineare
  • len -lunghezza totale della stringa creata
  • pad-padding / fill char (opzionale, predefinito ' ')

Esempio:

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

AsciiTable.arrayFill(len, [val])

Crea un nuovo array all'obiettivo dato, riempito con il valore dato, usato principalmente internamente

  • len -lunghezza dell'array
  • val -fill valore (opzionale)

Esempio:

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

Instance Methods

instance.setBorder([edge], [fill], [top], [bottom])

Imposta i caratteri del bordo per il rendering, se non vengono passati argomenti verranno ripristinati i valori predefiniti.Se edgeviene passato un singolo argomento , verrà utilizzato per tutti i bordi.

  • edge-bordi orizzontali (opzionale, predefinito |)
  • fill-bordi verticali (opzionale, predefinito -)
  • top-angoli superiori (opzionale, predefinito .)
  • bottom-angoli inferiori (opzionale, predefinito ')

Esempio:

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 * ************************

istanza.rimuoviBorder()

Esempio:

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

instance.setAlign(idx, direzione)

  • idx -indice di colonna da allineare
  • direction- Direzione di allineamento, ( AsciiTable.LEFT, AsciiTable.CENTER, AsciiTable.RIGHT)

Esempio:

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 | | '-------------------------------------'

istanza.setAlignLeft(idx)

Alias ​​a instance.setAlign(idx, AsciiTable.LEFT)

istanza.setAlignCenter(idx)

Alias ​​a instance.setAlign(idx, AsciiTable.CENTER)

istanza.setAlignRight(idx)

Alias ​​a instance.setAlign(idx, AsciiTable.RIGHT)

istanza.setTitolo(titolo)

  • title -titolo tabellatable

Esempio:

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

istanza.getTitolo()

Ottieni il titolo attuale della tabella

Esempio:

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

istanza.setTitleAlign(direzione)

  • direction -direzione di allineamento della tabella

Esempio:

1

instance.setTitleAlignLeft()

Alias ​​a instance.setTitleAlign(AsciiTable.LEFT)

instance.setTitleAlignCenter()

Alias ​​a instance.setTitleAlign(AsciiTable.CENTER)

instance.setTitleAlignRight()

Alias ​​a instance.setTitleAlign(AsciiTable.RIGHT)

istanza.sort(iteratore)

  • iterator -metodo di ordinamento da eseguire contro le righe

Esempio:

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 | '----------------'

instance.sortColumn(indice, iteratore)

Scorciatoia per l'ordinamento per il targeting di una colonna specifica

  • index -idx di colonna da ordinare
  • iterator -metodo di ordinamento da eseguire su valori di colonna

Esempio:

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

instance.setHeading(intestazione, [...])

Imposta le intestazioni delle colonne per la tabella, accetta gli argomenti allo stesso modo di addRow

  • heading -intestazione array o argomenti

Esempio:

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

istanza.setHeadingAlign(direzione)

  • direction -

Esempio:

1

instance.setHeadingAlignLeft()

Alias ​​a instance.setHeadingAlignLeft(AsciiTable.LEFT)

instance.setHeadingAlignCenter()

Alias ​​a instance.setHeadingAlignLeft(AsciiTable.CENTER)

instance.setHeadingAlignRight()

Alias ​​a instance.setHeadingAlignLeft(AsciiTable.RIGHT)

istanza.addRow(riga, [...])

Le righe possono essere aggiunte utilizzando un singolo argomento dell'array o gli argomenti se vengono utilizzati più argomenti quando si chiama il metodo.

  • row -array o argomenti dei valori di colonna

Esempio:

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 | '---------------'

istanza.addRowMatrix(righe)

addRowOperazione in blocco

  • rows -array multidimensionale di righe

Esempio:

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

instance.setJustify(abilitato)

Giustifica che tutte le colonne abbiano la stessa larghezza

  • enabled-booleano per attivare o disattivare la giustificazione, undefinedconsiderato vero

Esempio:

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

istanza.toString()

Rendi l'istanza come una stringa per l'output

Alias : [ valueOf, render]

istanza.toJSON()

Restituire la rappresentazione JSON della tabella, questo ci permette anche di chiamare JSON.stringifyl'istanza.

Esempio:

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"]]}

istanza.fromJSON(obj)

Popolare la tabella dall'oggetto json, dovrebbe corrispondere toJSONall'output sopra.

Alias : [ parse]

Esempio:

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

istanza.clear()

Cancella / ripristina tutti i dati della tabella

Alias : [ reset]

istanza.clearRows()

Reimposta tutti i dati di riga, mantiene il titolo e le intestazioni.

Installare

Con npm

1
npm install ascii-table

Contributori

Matthew Oliveira Peter Daum

Licenza

(La licenza MIT)

Copyright (c) 2013 Beau Sorensen

Con la presente viene concessa l'autorizzazione, a titolo gratuito, a chiunque ottenga una copia di questo software e dei file di documentazione associati (il 'Software'), di utilizzare il Software senza restrizioni, inclusi, senza limitazioni, i diritti di utilizzare, copiare, modificare, unire , pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software e consentire alle persone a cui viene fornito il Software di farlo, alle seguenti condizioni:

L'avviso di copyright di cui sopra e il presente avviso di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.

IL SOFTWARE VIENE FORNITO "COS COM'È", SENZA ALCUN TIPO DI GARANZIA, ESPRESSA O IMPLICITA, INCLUSE MA NON LIMITATE ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN PARTICOLARE SCOPO E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O ESSERE COPYRIGHT PER I TITOLARI DANNI O ALTRE RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, ILLECITO O ALTRO, DERIVANTI DA, DA O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRI TRATTAMENTI NEL SOFTWARE.