#excel #xlsx #ffi

sys libxlsxwriter-sys-cs

Rust对libxlsxwriter的绑定

1 个版本 (0 个不稳定版本)

1.1.4-2 2022年8月11日

#526压缩

MIT 许可证

2MB
42K SLoC

C 41K SLoC // 0.2% comments Bitbake 527 SLoC Shell 425 SLoC // 0.2% comments Perl 235 SLoC // 0.2% comments Python 209 SLoC // 0.2% comments Rust 115 SLoC // 0.0% comments Automake 34 SLoC

包含 (cab文件,16KB) vbaProject.bin,(模糊autoconf代码,1KB) configure.ac

xlsxwriter-rs

Build GitHub GitHub top language Crates.io Docs.rs

Rust绑定 libxlsxwriter

支持的功能

  • 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. 克隆或fork此仓库
  3. gitsubmodule update --init --recursive
    • 上述命令下载所需的C库,以便我们可以编译
  4. cargorun --examplehello_spreadsheet

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

无运行时依赖