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

3,345 阅读1分钟

console-grid

console-grid是一个可以在CLI命令行终端打印grid表格的工具类, 并且支持树结构

Preview效果预览

┌ ────────────────────────────────────── ┬ ─────── ┬ ──── ┬ ──────────── ┬ ──────────── ┐
│                                        │         │      │       Number │     Multiple │
│                                        │         │      │   Format red │  Line Header │
│ Name bg green                          │ ValueNull │ LongWordL... │         Name │
├ ────────────────────────────────────── ┼ ─────── ┼ ──── ┼ ──────────── ┼ ──────────── ┤
│ ├ Row Name                             │ 3-3.003 │
│ ├ Row Long Name Red Long Name Long ... │ 4-4.004 │
│ ├ Row 8 bright bg blue                 │ 8-8.008 │
│ │ ├ 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.007 │
│ ├ Row 6 bg green                       │ 6-6.006 │
│ ├ Row 5 red                            │ 5--5 │
│ ├ Row 22-2.002 │
│ └ Row 11-1.001 │
└ ────────────────────────────────────── ┴ ─────── ┴ ──── ┴ ──────────── ┴ ──────────── ┘
  • 支持树结构
  • cell的字符太长自动变成省略号
  • header的字符太长自动换行
  • 支持数字右对齐
  • 支持颜色输出
  • 支持排序

Install安装

npm install console-grid

Usage使用例子

const CG = require("console-grid");
CG({
    options: {
        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"
        }]
    }]
});

更多例子见Github仓库

github.com/cenfun/cons…