15个版本 (8个稳定)

1.4.0 2024年7月14日
1.3.2 2021年9月27日
1.3.1 2021年2月3日
1.3.0 2020年4月29日
0.1.5 2018年7月14日

#56 in 命令行界面

Download history 3893/week @ 2024-05-05 4133/week @ 2024-05-12 4057/week @ 2024-05-19 4402/week @ 2024-05-26 3745/week @ 2024-06-02 5153/week @ 2024-06-09 5143/week @ 2024-06-16 5098/week @ 2024-06-23 4749/week @ 2024-06-30 5547/week @ 2024-07-07 6061/week @ 2024-07-14 5673/week @ 2024-07-21 4225/week @ 2024-07-28 3626/week @ 2024-08-04 3790/week @ 2024-08-11 4299/week @ 2024-08-18

每月16,187次下载
用于 45 个crate (38个直接)

MIT 许可证

84KB
1.5K SLoC

term-table

简单制作CLI表格

示例

use rand::Rng;
use term_table::{row, row::Row, rows, table_cell::*, Table, TableStyle};

fn main() {
    let mut rng = rand::thread_rng();
    let num_draws = 5;
    let num_numbers = 6;
    let range = 1..=99;

    let mut table = Table::builder()
        .rows(rows![row!(TableCell::builder("My Lucky Numbers")
            .alignment(Alignment::Center)
            .col_span(num_numbers))])
        .style(TableStyle::elegant())
        .build();

    for _ in 0..num_draws {
        let mut row = Row::empty();
        for _ in 0..num_numbers {
            let num: i32 = rng.gen_range(range.clone());
            row.add_cell(TableCell::new(num.to_string()));
        }
        table.add_row(row);
    }

    println!("{}", table.render());
}

这是结果

extended style

表格样式

可以通过创建一个新实例的 TableStyle 来定义自己的表格样式

这是扩展表格样式实现的样子。这是term-table-rs中的默认样式

pub fn extended() -> TableStyle {
    return TableStyle {
        top_left_corner: '',
        top_right_corner: '',
        bottom_left_corner: '',
        bottom_right_corner: '',
        outer_left_vertical: '',
        outer_right_vertical: '',
        outer_bottom_horizontal: '',
        outer_top_horizontal: '',
        intersection: '',
        vertical: '',
        horizontal: '',
    };
}

TableStyle 还实现了 simple() 表格样式函数和 blank() 表格样式函数

这些样式看起来像这样

空白

blank style

简单

simple style

列宽

可以通过设置 Tablemax_column_width 属性来控制表格列的最大宽度。可以使用 Tableset_max_column_width 函数来设置特定列的最大宽度。使用 set_max_column_widths 函数可以通过传递包含索引和宽度的元组的 Vec 来设置多个列的宽度。

禁用行分隔符

有几种不同的选项可以禁用行分隔。

Table 有三个标志用于控制行分隔

  1. separate_rows 决定表格内是否行分隔

    separate_rows

  2. has_top_boarder 决定表格是否有顶部边框

    has_top_boarder

  3. has_bottom_boarder 决定表格是否有底部边框

    has_bottom_boarder

也可以通过在 Row 上设置 has_separator 标志来按行控制分隔符

has_separator

依赖关系

~2.4–3.5MB
~54K SLoC