Вступ
Aspose.Cells FOSS для Rust переносить сімейство Aspose.Cells FOSS у екосистему Rust. Пакет aspose-cells-foss-rust дозволяє Rust-додаткам створювати Excel-файли XLSX з нуля, завантажувати існуючі файли, змінювати їх вміст і зберігати результат — без установки Microsoft Office, COM-автоматизації чи зовнішнього середовища виконання.
Пакет має ліцензію MIT і орієнтований на випуск Rust 2021. Він дотримується конвенцій, які очікують розробники Rust: конструктори типу Workbook::new, обробка помилок на базі Result через CellsError та явні змінювані доступи, такі як get_worksheets_mut і get_cells_mut, які забезпечують чіткість правил запозичення. Якщо ви створюєте бекенд-сервіси, CLI-інструменти або конвеєри даних, які повинні генерувати чи споживати електронні таблиці, ця бібліотека надає вам рідний спосіб це робити.
Цей розділ було переглянуто відповідно до поточної моделі джерела щодо останньої поведінки продукту та охоплення API.
Aspose.Cells FOSS вже доступний для .NET, C++, Java, Python та TypeScript; пакет Rust приєднується до сімейства з тією ж метою: чесна, верифікована підтримка XLSX під пермісивною ліцензією.
Що включено
Книги, листи та типізовані значення клітинок
Об’єкт Workbook починається з одного листа і розширюється за допомогою add_worksheet. Комірки приймають типізовані значення — рядки, цілі числа, булеві, десяткові та дати-час — через спеціальні сеттери, тож немає потреби у «stringly-typed» конверсіях:
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("Hello")?;
cells.get("B1")?.put_value_i32(123)?;
cells.get("C1")?.put_value_bool(true)?;
cells.get("D1")?.put_value_decimal(12.5)?;
}
workbook.save("hello.xlsx")?;
Формули з кешованими результатами
Формули записуються разом із кешованим значенням, тому збережений файл відкривається в Excel з правильними результатами одразу — без необхідності перерахунку:
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
Діаграми, прив’язані до діапазонів даних
Стовпчикові, лінійні та інші типи діаграм з переліку ChartType можна прив’язати до діапазонів комірок на листі, а геометрію діаграми можна зчитати з завантажених файлів:
let mut charts = sheet.get_charts();
charts.add(
ChartType::Column,
"Charts!$B$1:$B$13".to_string(),
0,
4,
18,
8,
)?;
Стилізація, налаштування сторінки та структура
Форматування комірок здійснюється через CellStyle з Font, Fill та Borders, що застосовуються вибірково за допомогою StyleFlag. PageSetup керує розміром паперу та орієнтацією для друку, FreezePane залишає заголовкові рядки видимими, а структуровані таблиці доступні через ListObject з TableStyleType.
Перевірка даних, умовне форматування та фільтри
Функції забезпечення якості даних є частиною основного інтерфейсу: правила Validation з OperatorType, умовне форматування через FormatCondition, автозастосування фільтрів за допомогою AutoFilter, визначені імена через DefinedName та захист книги або листа за допомогою WorkbookProtection і WorksheetProtection.
Захисне завантаження з діагностикою
Файли XLSX у реальному світі не завжди коректно сформовані. LoadOptions надає прапорці для виправлення, а LoadDiagnostics повідомляє, що виявив завантажувач:
let options = LoadOptions {
try_repair_package: true,
try_repair_xml: true,
..LoadOptions::default()
};
let loaded = Workbook::load_xlsx_with_options(&valid_path, &options)?;
println!(
"Loaded workbook with {} worksheet(s) and {} diagnostic issue(s).",
loaded.get_worksheets().count(),
loaded.get_load_diagnostics().issues().len()
);
Швидкий старт
Додайте crate у ваш Cargo.toml як 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>> {
// Create a new workbook (starts with one sheet, "Sheet1").
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("Hello")?;
cells.get("B1")?.put_value_i32(123)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
}
workbook.save("hello.xlsx")?;
// Load it back.
let loaded = Workbook::load_xlsx("hello.xlsx")?;
let sheet = loaded.worksheet("Sheet1")?;
let cells = sheet.get_cells();
println!("A1 = {}", cells.get("A1")?.display_string_value());
Ok(())
}
Підтримувані формати
| Формат | Розширення | Читати | Запис |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
XLSX є в центрі уваги поточного випуску: повний раунд-трип читання та запису за допомогою Workbook::load_xlsx і Workbook::save, з enum-ами LoadFormat і SaveFormat, що керують явним вибором формату.
Відкритий код та ліцензування
Aspose.Cells FOSS для Rust має ліцензію MIT. Повний вихідний код доступний на GitHub, і ліцензія дозволяє комерційне використання, модифікацію та розповсюдження.