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 命令行界面
每月16,187次下载
用于 45 个crate (38个直接)
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());
}
这是结果

表格样式
可以通过创建一个新实例的 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() 表格样式函数
这些样式看起来像这样
空白

简单

列宽
可以通过设置 Table 的 max_column_width 属性来控制表格列的最大宽度。可以使用 Table 的 set_max_column_width 函数来设置特定列的最大宽度。使用 set_max_column_widths 函数可以通过传递包含索引和宽度的元组的 Vec 来设置多个列的宽度。
禁用行分隔符
有几种不同的选项可以禁用行分隔。
Table 有三个标志用于控制行分隔
-
separate_rows决定表格内是否行分隔
-
has_top_boarder决定表格是否有顶部边框
-
has_bottom_boarder决定表格是否有底部边框
也可以通过在 Row 上设置 has_separator 标志来按行控制分隔符

依赖关系
~2.4–3.5MB
~54K SLoC