console-grid
console-grid是一个可以在CLI命令行终端打印grid表格的工具类, 并且支持树结构
Preview效果预览
┌ ────────────────────────────────────── ┬ ─────── ┬ ──── ┬ ──────────── ┬ ──────────── ┐
│ │ │ │ Number │ Multiple │
│ │ │ │ Format red │ Line Header │
│ Name bg green │ Value │ Null │ LongWordL... │ Name │
├ ────────────────────────────────────── ┼ ─────── ┼ ──── ┼ ──────────── ┼ ──────────── ┤
│ ├ Row Name │ 3 │ - │ 3.00 │ 3 │
│ ├ Row Long Name Red Long Name Long ... │ 4 │ - │ 4.00 │ 4 │
│ ├ Row 8 bright bg blue │ 8 │ - │ 8.00 │ 8 │
│ │ ├ Sub Row 3 │ s3 s... │ - │ 13.00 │ s3 s3 s3 │
│ │ ├ Sub Row 2 │ s2s2s2 │ - │ 12.00 │ s2s2s2 s │
│ │ └ Sub Row 1 │ s1 │ - │ 11.00 │ s1 │
│ │ ├ Sub Row 22 │ s22 │ - │ 22.00 │ s22 │
│ │ └ Sub Row 21 │ s21 │ - │ 21.00 │ s21 │
│ ├ Row 7 bright blue │ 7 │ - │ 7.00 │ 7 │
│ ├ Row 6 bg green │ 6 │ - │ 6.00 │ 6 │
│ ├ Row 5 red │ 5 │ - │ - │ 5 │
│ ├ Row 2 │ 2 │ - │ 2.00 │ 2 │
│ └ Row 1 │ 1 │ - │ 1.00 │ 1 │
└ ────────────────────────────────────── ┴ ─────── ┴ ──── ┴ ──────────── ┴ ──────────── ┘
复制代码
- 支持树结构
- cell的字符太长自动变成省略号
- header的字符太长自动换行
- 支持数字右对齐
- 支持颜色输出
- 支持排序
Install安装
npm install console-grid
复制代码
Usage使用例子
var Grid = require("console-grid");
var grid = new Grid();
var data = {
option: {
sortField: "name"
},
columns: [{
id: "name",
name: "Name",
type: "string",
maxWidth: 38
}, {
id: "value",
name: "Value",
type: "string",
maxWidth: 7
}],
rows: [{
name: "Row 1",
value: "1"
}, {
name: "Row 2",
value: "2"
subs: [{
name: "Sub Row 1",
value: "s1"
}, {
name: "Sub Row 2",
value: "s2"
}]
}]
};
grid.render(data);
复制代码
Style颜色输出
//可选色有 'black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white'
var CGS = require("console-grid").Style;
//绿色背景
CGS.bg.green("bg green")
//红色字体
CGS.red("red")
//高亮色
CGS.br.blue("bright blue")
//高亮背景色
CGS.br.bg.blue("bright bg blue")
复制代码
Default Option默认选项
option = {
border: {
h: '─',
v: '│',
top_left: '┌',
top_mid: '┬',
top_right: '┐',
mid_left: '├',
mid_mid: '┼',
mid_right: '┤',
bottom_left: '└',
bottom_mid: '┴',
bottom_right: '┘'
},
hideHeaders: false,
padding: 1,
defaultMaxWidth: 30,
sortField: "",
sortAsc: false,
treeId: "name",
treeIcon: "├ ",
treeLink: "│ ",
treeLast: "└ ",
treeIndent: " ",
defaultTreeFormatter: this.defaultTreeFormatter,
defaultFormatter: this.defaultFormatter,
nullPlaceholder: "-"
}
console.log(grid.defaultOption());
复制代码
Column properties列支持属性
column = {
id: String,
name: String,
type: String, //string, number
align : String, //left, right
maxWidth: Number,
formatter: Function
}
复制代码
Row properties行支持属性
row = {
//column id key: cell value
subs: Array //sub rows
}
复制代码