如何在 Rust 中加载电子表格
Aspose.Cells 为 Rust 提供的 FOSS 可以直接从包格式加载 Excel XLSX 工作簿 — 无需 Microsoft Office。本指南通过 Cargo 安装 aspose-cells-foss-rust crate,使用 Workbook::load_xlsx 加载工作簿,并使用 LoadOptions 修复标志和 LoadDiagnostics 处理不完整的文件。
分步指南
步骤 1:安装包
将 crate 添加到你的 Cargo.toml 中,作为 Cargo 的 git 依赖:
# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }然后构建项目:
cargo build步骤 2:导入必需的类
use aspose_cells_foss_rust::{LoadOptions, Workbook};
use std::error::Error;步骤 3:创建要加载的示例文件
如果磁盘上尚未有工作簿,请先创建一个:
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")?;步骤 4:加载工作簿
Workbook::load_xlsx 打开一个格式正确的 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());步骤 5:使用修复选项进行防御性加载
对于第三方文件,请启用修复标志并检查加载器收集的诊断信息:
let options = LoadOptions {
try_repair_package: true,
try_repair_xml: true,
..LoadOptions::default()
};
let loaded = Workbook::load_xlsx_with_options("inventory.xlsx", &options)?;
println!(
"Loaded workbook with {} worksheet(s) and {} diagnostic issue(s).",
loaded.get_worksheets().count(),
loaded.get_load_diagnostics().issues().len()
);常见问题与解决方案
load 调用对一个可以在 Excel 中打开的文件返回错误。 Enable try_repair_package and try_repair_xml in LoadOptions 并通过以下方式加载 Workbook::load_xlsx_with_options — Excel 能容忍一些严格加载会拒绝的包不规范情况。
worksheet("Sheet1") 加载后失败。 工作表可能有不同的名称。可通过以下方式枚举 get_worksheets 或改为通过工作表集合按索引获取。
读取的值返回为空字符串。 使用 display_string_value 在单元格上检查其显示文本并检查 value_type 以查看实际存储了什么。
公式显示陈旧的结果。 加载器保留文件中存储的缓存值;重新计算是使用者的责任。写入时,始终传递正确的缓存值给 put_formula_with_cached_value.
常见问题
可以加载哪些格式?
当前版本仅支持 XLSX。LoadFormat 枚举涵盖了 Auto 和 Xlsx。
我需要安装 Microsoft Office 吗?
不需要。该 crate 直接解析 XLSX 包;不涉及 Office、COM 或外部运行时。
我怎么知道加载器是否修复了任何内容?
在加载的工作簿上读取 get_load_diagnostics —— LoadDiagnostics 列出了加载过程中遇到的问题。