在CLI命令行终端打印grid表格

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
}
复制代码

Github仓库

github.com/cenfun/cons…

转载于:https://juejin.im/post/5c9c070151882536a65c8565

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值