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 分三层:
- OPC 容器层(
ooxml_core::opc):.xlsx本质是 zip 包, 由[Content_Types].xml+.rels+ 各 part 组成。本 crate 直接复用 ooxml-core。 - OOXML 模型层(
xlsx_rs::oxml):SpreadsheetML 强类型映射 (<worksheet>/<sheetData>/<c>/<v>等)。 - 高阶 API(
xlsx_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 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>元素。