#xlsx #excel #ffi

sys libxlsxwriter-sys

libxlsxwriter 的 Rust 绑定

9 个版本 (稳定版)

1.1.7 2024年6月22日
1.1.5 2023年4月11日
1.1.4 2022年8月19日
1.1.1 2021年7月13日
0.8.7 2019年11月17日

#178 in 压缩

Download history 6150/week @ 2024-05-02 6238/week @ 2024-05-09 7630/week @ 2024-05-16 5843/week @ 2024-05-23 7011/week @ 2024-05-30 6028/week @ 2024-06-06 6171/week @ 2024-06-13 6400/week @ 2024-06-20 5346/week @ 2024-06-27 5610/week @ 2024-07-04 5627/week @ 2024-07-11 5086/week @ 2024-07-18 4833/week @ 2024-07-25 5271/week @ 2024-08-01 5296/week @ 2024-08-08 4964/week @ 2024-08-15

每月下载量 21,566
17 个包中使用 (通过 xlsxwriter)

MIT 许可证

2MB
42K SLoC

C 40K SLoC // 0.2% comments Bitbake 527 SLoC Shell 432 SLoC // 0.2% comments Zig 283 SLoC // 0.1% comments Perl 237 SLoC // 0.2% comments Rust 123 SLoC // 0.0% comments C++ 64 SLoC // 0.1% comments Swift 38 SLoC // 0.1% comments Automake 34 SLoC

包含 (Cab 文件, 16KB) vbaProject.bin, (神秘的 autoconf 代码, 1KB) configure.ac

xlsxwriter-rs

Build GitHub GitHub top language Crates.io Docs.rs

libxlsxwriter 的 Rust 绑定

支持的功能

  • 100% 兼容 Excel XLSX 文件。
  • 完整的 Excel 格式化。
  • 合并单元格。
  • 自动筛选。
  • 数据验证和下拉列表。
  • 工作表 PNG/JPEG 图片。

即将推出

  • 图表。

功能标志

  • no-md5: 禁用图像去重和移除 md5 函数。 (详见 上游文档 了解更多)。
  • use-openssl-md5: 使用 OpenSSL 的 md5 函数实现。 (详见 上游文档 了解更多)。
  • system-zlib: 使用系统 zlib 而不是包含的 zlib。

构建要求

  • LLVM 和 clang

在 Windows 上构建的方法

  1. 安装 Visual Studio
  2. 安装 LLVM
  3. 设置环境变量 LIBCLANG_PATHC:\Program Files\LLVM\bin
  4. 运行构建

示例

Result Image

let workbook = Workbook::new("simple1.xlsx")?;

let mut sheet1 = workbook.add_worksheet(None)?;
sheet1.write_string(0, 0, "Red text", Some(&Format::new().set_font_color(FormatColor::Red)))?;
sheet1.write_number(0, 1, 20., None)?;
sheet1.write_formula_num(1, 0, "=10+B1", None, 30.)?;
sheet1.write_url(
    1,
    1,
    "https://github.com/informationsea/xlsxwriter-rs",
    Some(&Format::new().set_font_color(FormatColor::Blue).set_underline(FormatUnderline::Single)),
)?;
sheet1.merge_range(2, 0, 3, 2, "Hello, world", Some(
    &Format::new().set_font_color(FormatColor::Green).set_align(FormatAlignment::CenterAcross)
                  .set_vertical_align(FormatVerticalAlignment::VerticalCenter)))?;

sheet1.set_selection(1, 0, 1, 2);
sheet1.set_tab_color(FormatColor::Cyan);
workbook.close()?;

使用 Cargo 运行示例

您可以通过以下步骤在本地探索此示例

  1. 如果您使用 Windows,请安装 LLVM 并设置 LIBCLANG_PATH。 (有关详细信息,请参阅 bindgen 文档)
  2. 克隆或分叉此存储库
  3. gitsubmodule update --init --recursive
    • 上述命令将下载所需的 C 库,以便我们可以编译
  4. cargorun --examplehello_spreadsheet

然后您应该会在 target/simple1.xlsx 中看到示例。祝您享受!

无运行时依赖