Как загрузить электронную таблицу в Rust

Как загрузить электронную таблицу в Rust

Aspose.Cells FOSS для Rust загружает книги Excel XLSX напрямую из формата пакета — без необходимости в Microsoft Office. Это руководство устанавливает crate aspose-cells-foss-rust через Cargo, загружает книгу с помощью Workbook::load_xlsx и обрабатывает несовершенные файлы с помощью флагов восстановления LoadOptions и LoadDiagnostics.

Пошаговое руководство

Шаг 1: Установить пакет

Добавьте crate в ваш Cargo.toml как git-зависимость Cargo:

# 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 перечисляет проблемы, возникшие при загрузке.

См. также:

 Русский