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