如何在 Rust 中加载电子表格

如何在 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 列出了加载过程中遇到的问题。

另请参阅

 中文