Skip to main content

Crate xlsx_rs

Crate xlsx_rs 

Source
Expand description

§xlsx-rs

Rust 版本的 Excel .xlsx 读写库,基于 ooxml_core 公共基座, 对标 python-openpyxl

§定位

  • 完整读写:支持创建、读取、修改 .xlsx 文件 (区别于 calamine 只读、rust_xlsxwriter 只写)。
  • Round-trip 保真:读取后再保存,不丢失原有样式/公式/结构。
  • 基于 ooxml-core:复用 OPC 打包层 + DrawingML 公共类型系统。
  • 零 unsafe:纯 Rust 实现。

§三层架构

与 pptx-rs 一致,xlsx-rs 分三层:

  1. OPC 容器层ooxml_core::opc):.xlsx 本质是 zip 包, 由 [Content_Types].xml + .rels + 各 part 组成。本 crate 直接复用 ooxml-core。
  2. OOXML 模型层xlsx_rs::oxml):SpreadsheetML 强类型映射 (<worksheet> / <sheetData> / <c> / <v> 等)。
  3. 高阶 APIxlsx_rs::Workbook / Worksheet / Cell):用户友好的读写接口。

§快速开始

use xlsx_rs::{Workbook, CellValue};

let mut wb = Workbook::new();
let sheet = wb.get_sheet_mut(0).unwrap();
sheet.set_cell("A1", CellValue::Number(123.0));
sheet.set_cell("B1", CellValue::String("Hello".to_string()));
wb.save("hello.xlsx").unwrap();

§路线图

  • v0.1.0:Workbook + Worksheet + Cell + SharedStrings 基础读写
  • v0.2.0:样式系统(Font/Fill/Border/Alignment/NumberFormat)
  • v0.3.0:公式读写 + CalcChain
  • v0.4.0:嵌入图片/形状(DrawingML 复用)
  • v0.5.0:图表(基于 pptx-rs Chart 经验迁移)
  • v0.6.0:Table/PivotTable + 条件格式

Re-exports§

pub use cell::parse_a1;
pub use cell::to_a1;
pub use cell::Cell;
pub use cell::CellType;
pub use cell::CellValue;
pub use error::Error;
pub use error::Result;
pub use shared_strings::SharedStringsTable;
pub use workbook::Workbook;
pub use worksheet::Worksheet;

Modules§

cell
单元格(Cell)与单元格值(CellValue)。
error
统一错误类型。
shared_strings
SharedStrings Table:.xlsx 内的共享字符串表。
workbook
工作簿(Workbook):xlsx-rs 的入口类型,对应一个 .xlsx 文件。
worksheet
工作表(Worksheet):对应 SpreadsheetML 的 <worksheet> 元素。