Úvod

Aspose.Cells FOSS pro Rust přináší rodinu Aspose.Cells FOSS do ekosystému Rust. Crate aspose-cells-foss-rust umožňuje aplikacím v Rustu vytvářet sešity Excel XLSX od nuly, načítat existující soubory, upravovat jejich obsah a výsledek ukládat — bez instalace Microsoft Office, COM automatizace nebo externího runtime.

Crate je licencován pod MIT a cílí na edici Rust 2021. Dodržuje konvence, které vývojáři Rustu očekávají: konstruktory jako Workbook::new, zpracování chyb založené na Result přes CellsError a explicitní mutabilní přístupy jako get_worksheets_mut a get_cells_mut, které udržují pravidla půjčování přehledná. Pokud budujete backendové služby, CLI nástroje nebo datové pipeline, které potřebují vytvářet nebo konzumovat tabulky, tato knihovna vám poskytuje nativní způsob, jak to udělat.

Tato sekce byla zkontrolována vůči aktuálnímu zdrojovému modelu pro nejnovější chování produktu a pokrytí API.

Aspose.Cells FOSS je již k dispozici pro .NET, C++, Java, Python a TypeScript; Rust crate se připojuje k rodině se stejným zaměřením: poctivá, ověřitelná podpora XLSX pod permisivní licencí.


Co je zahrnuto

Sešity, listy a typované hodnoty buněk

Workbook začíná s jedním listem a roste pomocí add_worksheet. Buňky přijímají typované hodnoty — řetězce, celá čísla, boolovské hodnoty, desetinná čísla a datum-časy — prostřednictvím dedikovaných setterů, takže není potřeba konverze typu string.:

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")?;

Vzorce s uloženými výsledky

Vzorce jsou zapisovány společně s uloženou hodnotou, takže uložený soubor se v Excelu otevře okamžitě se správnými výsledky — není vyžadován žádný přepočet:

cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
    .put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;

Grafy ukotvené k datovým oblastem

Sloupcové, čárové a další typy grafů z výčtu ChartType lze ukotvit do rozsahů buněk na listu a geometrie grafu může být načtena zpět z načtených souborů:

let mut charts = sheet.get_charts();
charts.add(
    ChartType::Column,
    "Charts!$B$1:$B$13".to_string(),
    0,
    4,
    18,
    8,
)?;

Styling, nastavení stránky a struktura

Formátování buněk probíhá přes CellStyle s Font, Fill a Borders, aplikované selektivně pomocí StyleFlag. PageSetup řídí velikost papíru a orientaci pro tisk, FreezePane udržuje řádky hlavičky viditelné a strukturované tabulky jsou poskytovány přes ListObject s TableStyleType.

Validace, podmíněné formátování a filtry

Funkce kvality dat jsou součástí jádrového rozhraní: pravidla Validation s OperatorType, podmíněné formátování přes FormatCondition, automatické filtry pomocí AutoFilter, definovaná jména přes DefinedName a ochrana sešitu nebo listu skrze WorkbookProtection a WorksheetProtection.

Obranné načítání s diagnostikou

Reálné soubory XLSX nejsou vždy dobře formované. LoadOptions odhaluje repair flags a LoadDiagnostics hlásí, co načítač zaznamenal:

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()
);

Rychlý start

Přidejte crate do svého Cargo.toml jako git závislost (crate ještě není publikován na crates.io):

# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }

Pak vytvořte, uložte a znovu načtěte svůj první sešit:

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(())
}

Podporované formáty

FormátPříponaČístZapsat
XLSX.xlsx

XLSX je středobodem aktuálního vydání: kompletní obousměrné čtení a zápis pomocí Workbook::load_xlsx a Workbook::save, přičemž výčty LoadFormat a SaveFormat řídí explicitní výběr formátu.


Open Source a licencování

Aspose.Cells FOSS pro Rust je licencováno pod MIT. Kompletní zdrojový kód je k dispozici na GitHub a licence povoluje komerční použití, úpravy i redistribuci.


Začínáme

Související zdroje