#unicode #table #format #library

unicode-prettytable

使用 Unicode 箱形绘制字符的表格格式化库

3 个不稳定版本

1.0.0 2021年2月7日
0.3.1 2021年3月10日
0.3.0 2021年2月10日
0.2.0 2021年2月7日

#268 in 值格式化

MIT/Apache

16KB
295

Rust 表格格式化库,使用 Unicode 箱形绘制字符。

Crates.io docs.rs

注意:之前版本 1.0.0 已更新为 0.3.0

示例用法

use unicode_prettytable::*;

fn main() -> Result<(), String> {
    let input = vec![
        vec!["oh hello there", "hello there", "hello"],
        vec!["hello there", "oh hello there", "hello"],
        vec!["oh hello there", "hello", "hello there"],
        vec!["oh hello there", "hello there", "hello"],
        vec!["oh hello there", "hello there", "hello"],
    ];

    // uses double bar characters for header and centers text within columns
    let table1 = TableBuilder::default()
        .header(
            HeaderBuilder::default()
                .double_bar(true)
                .centered_text(true)
                .build()?
        )
        .rows(&input)
        .build()?;

    // does not use double bar characters for header, but centers header text within columns
    let table2 = TableBuilder::default()
        .header(
            HeaderBuilder::default()
                .double_bar(false)
                .centered_text(true)
                .build()?
        )
        .rows(&input)
        .build()?;

    // uses default header settings
    let table3 = TableBuilder::default()
        .rows(&input)
        .build()?;

    println!("{}\n", table1);
    println!("{}\n", table2);
    println!("{}", table3);

    Ok(())
}

上面的代码输出

╒══════════════════╤═══════════════╤═══════════╕
│  oh hello there  │  hello there  │   hello   │
╞══════════════════╪═══════════════╪═══════════╡
│hello there       │oh hello there │hello      │
├──────────────────┼───────────────┼───────────┤
│oh hello there    │hello          │hello there│
├──────────────────┼───────────────┼───────────┤
│oh hello there    │hello there    │hello      │
├──────────────────┼───────────────┼───────────┤
│oh hello there    │hello there    │hello      │
└──────────────────┴───────────────┴───────────┘

┌──────────────────┬───────────────┬───────────┐
│  oh hello there  │  hello there  │   hello   │
├──────────────────┼───────────────┼───────────┤
│hello there       │oh hello there │hello      │
├──────────────────┼───────────────┼───────────┤
│oh hello there    │hello          │hello there│
├──────────────────┼───────────────┼───────────┤
│oh hello there    │hello there    │hello      │
├──────────────────┼───────────────┼───────────┤
│oh hello there    │hello there    │hello      │
└──────────────────┴───────────────┴───────────┘

┌──────────────┬──────────────┬───────────┐
│oh hello there│hello there   │hello      │
├──────────────┼──────────────┼───────────┤
│hello there   │oh hello there│hello      │
├──────────────┼──────────────┼───────────┤
│oh hello there│hello         │hello there│
├──────────────┼──────────────┼───────────┤
│oh hello there│hello there   │hello      │
├──────────────┼──────────────┼───────────┤
│oh hello there│hello there   │hello      │
└──────────────┴──────────────┴───────────┘

许可证

许可协议为以下之一:

任选其一。

您贡献的许可证

除非您明确声明,否则您提交的任何旨在包含在本作品中的贡献,根据 Apache-2.0 许可证的界定,应双许可如上,无任何额外条款或条件。

依赖项

~2MB
~46K SLoC