介绍
电子表格管理是 aspose-cells-foss-rust crate 的核心:对工作簿、其工作表及单元格进行建模的对象,以及将 Rust 数据转换为可呈现的 XLSX 文件的操作。本文将逐步介绍这些表面功能——从创建工作表和写入类型化数值,到样式、页面布局,以及使工作簿可用的结构特性:批注、超链接、表格和已定义名称。
此处展示的所有内容均属于开源、MIT 许可证的 crate。整个过程不涉及任何 Microsoft Office 的安装;该库直接读取和写入 XLSX 包格式。
本节已根据当前源码模型审查,以确保符合最新的产品行为和 API 覆盖范围。
关键特性
工作表和单元格集合
工作表通过工作簿的工作表集合进行管理。工作表可以通过索引或名称进行定位,使用 set_name 重命名,并可通过 get_cells(读取)或 get_cells_mut(写入)访问其单元格:
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Charts")?;
{
let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Month")?;
cells.get("B1")?.put_value_string("Sales")?;
}
}
按名称或索引的类型化值
单元格通过类型化的 setter 接受字符串、整数、布尔值、小数和日期时间。单元格可以使用 A1 形式(get("B3"))或数值形式(get_by_index(row, column))进行定位,这适用于生成的布局:
for month in 1..=12_u32 {
cells
.get_by_index(month, 0)
.put_value_string(format!("Month {month}"))?;
cells
.get_by_index(month, 1)
.put_value_i32((month as i32 * 1000) + (month as i32 * 50))?;
}
带缓存值的公式
put_formula_with_cached_value 将公式文本连同 Excel 在首次重新计算前应显示的值一起存储——当文件被其他读取缓存结果的工具使用时,这一点非常重要:
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
样式与页面布局
CellStyle 包含 Font、Fill 和 Borders;StyleFlag 用于选择更新所影响的样式方面。NumberFormat 控制数值的呈现,PageSetup 管理打印时的 PaperSizeType 和 PageOrientationType。FreezePane 以及行/列的 VisibilityType 使大工作表仍然易于导航。
批注、超链接和名称
审阅者的工作流和导航由 Comment 与 CommentCollection、Hyperlink 与 HyperlinkCollection,以及用于命名范围的 DefinedName 与 DefinedNameCollection 负责。
结构化表格和过滤器
ListObject 将一个范围转换为结构化表格,可使用 TableStyleType 进行样式设置并包含 TotalsCalculation 行;AutoFilter 通过 FilterColumn 和 FilterOperatorType 条件添加过滤功能。
快速入门
在 Cargo.toml 中将该 crate 添加为 git 依赖(该 crate 尚未在 crates.io 上发布):
# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }一个最小化的电子表格管理会话——创建、写入、保存、重新加载:
use aspose_cells_foss_rust::{CellValue, Workbook};
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Item")?;
cells.get("B1")?.put_value_string("Quantity")?;
cells.get("A2")?.put_value_string("Apples")?;
cells.get("B2")?.put_value_i32(12)?;
}
workbook.save("inventory.xlsx")?;
let loaded = Workbook::load_xlsx("inventory.xlsx")?;
let sheet = loaded.worksheet("Sheet1")?;
let cells = sheet.get_cells();
println!("A2 = {}", cells.get("A2")?.display_string_value());
Ok(())
}
支持的格式
| 格式 | 扩展 | 读取 | 写入 |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
加载接受 LoadOptions 修复标志(try_repair_package、try_repair_xml),并提供结构化的 LoadDiagnostics;保存则通过 save、save_xlsx 或 save_with_format,使用 SaveFormat 枚举。
开源与许可
Aspose.Cells FOSS for Rust 是 MIT 许可证。源代码托管在 GitHub;允许商业使用、修改和再分发。