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