36 个版本
0.12.0 | 2024 年 8 月 5 日 |
---|---|
0.11.0 | 2023 年 12 月 20 日 |
0.10.0 | 2023 年 7 月 24 日 |
0.7.1 | 2022 年 10 月 18 日 |
0.1.0 | 2020 年 3 月 23 日 |
#208 在 命令行界面
289,802 每月下载量
在 320 个 Crates 中使用(通过 tabled)
265KB
7K SLoC
papergrid
这是一个美观表格的库。
它具有相对底层的 API。如果您对更友好的 API 感兴趣,请查看 tabled
。
用法
use papergrid::{
colors::NoColors,
config::{
spanned::SpannedConfig, AlignmentHorizontal, AlignmentVertical, Borders, Entity, Indent,
Sides,
},
dimension::{spanned::SpannedGridDimension, Estimate},
grid::peekable::PeekableGrid,
records::vec_records::{CellInfo, VecRecords},
};
fn main() {
let mut cfg = SpannedConfig::default();
cfg.set_borders(Borders {
top: Some('-'),
top_left: Some('+'),
top_right: Some('+'),
top_intersection: Some('+'),
bottom: Some('-'),
bottom_left: Some('+'),
bottom_right: Some('+'),
bottom_intersection: Some('+'),
horizontal: Some('-'),
left_intersection: Some('+'),
right_intersection: Some('+'),
vertical: Some('|'),
left: Some('|'),
right: Some('|'),
intersection: Some('+'),
});
cfg.set_column_span((1, 1), 3);
cfg.set_row_span((0, 0), 2);
cfg.set_alignment_horizontal((1, 0).into(), AlignmentHorizontal::Center);
cfg.set_alignment_vertical(Entity::Global, AlignmentVertical::Center);
cfg.set_padding(
(0, 0).into(),
Sides::new(
Indent::spaced(4),
Indent::spaced(4),
Indent::spaced(1),
Indent::spaced(1),
),
);
let data = [
["Papergrid", "is a library", "for print tables", "!"],
["", "Just like this", "", ""],
];
let data = data
.iter()
.map(|row| row.iter().map(CellInfo::new).collect())
.collect();
let records = VecRecords::new(data);
let mut dims = SpannedGridDimension::default();
dims.estimate(&records, &cfg);
let grid = PeekableGrid::new(&records, &cfg, &dims, NoColors).to_string();
println!("{grid}");
}
运行示例您必须看到。
+-----------------+------------+----------------+-+
| |is a library|for print tables|!|
+ Papergrid +------------+----------------+-+
| |Just like this |
+-----------------+------------+----------------+-+
依赖项
~510–740KB