Bevezetés
Aspose.Cells FOSS for Rust a Aspose.Cells FOSS családot hozza a Rust ökoszisztémába. Az aspose-cells-foss-rust crate lehetővé teszi a Rust alkalmazások számára, hogy Excel XLSX munkafüzeteket hozzanak létre a semmiből, meglévő fájlokat töltsenek be, módosítsák a tartalmukat, és elmentsék az eredményt — Microsoft Office telepítés, COM automatizálás vagy külső futtatókörnyezet nélkül.
A crate MIT licenc alatt áll, és a Rust 2021-es kiadásra céloz. Követi a Rust fejlesztők által elvárt konvenciókat: olyan konstruktorok, mint Workbook::new, Result-alapú hibakezelés a CellsError segítségével, valamint explicite módosítható hozzáférők, mint get_worksheets_mut és get_cells_mut, amelyek tisztán tartják a kölcsönzési szabályokat. Ha backend szolgáltatásokat, CLI eszközöket vagy adatcsővezetékeket építesz, amelyeknek táblázatokat kell előállítaniuk vagy fogyasztaniuk, ez a könyvtár natív módot biztosít ehhez.
Ez a szakasz a jelenlegi forrásmodell alapján került felülvizsgálatra a legújabb termékviselkedés és a API lefedettség tekintetében.
A Aspose.Cells FOSS már elérhető .NET, C++, Java, Python és TypeScript számára; a Rust crate a családhoz csatlakozik ugyanazzal a fókuszáltsággal: őszinte, ellenőrizhető XLSX támogatás engedékeny licenc alatt.
Mi van benne
Munkafüzetek, Munkalapok és Típusos cellaértékek
Egy Workbook egy munkalappal indul, és a add_worksheet segítségével növekszik. A cellák típusos értékeket fogadnak — karakterláncok, egész számok, logikai értékek, tizedesek és dátum-idő — dedikált setterek révén, így nincs szükség string-alapú konverziókra:
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")?;
Képletek gyorsítótárazott eredményekkel
A képletek egy gyorsítótárazott értékkel együtt íródnak, így a mentett fájl Excelben azonnal a helyes eredményekkel nyílik meg — nincs szükség újraszámolási lépésre:
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
Diagramok adathatárokhoz rögzítve
A ChartType felsorolásból származó oszlop, vonal és egyéb diagramtípusok rögzíthetők a munkalap cellatartományaira, és a diagram geometria visszaolvasható a betöltött fájlokból:
let mut charts = sheet.get_charts();
charts.add(
ChartType::Column,
"Charts!$B$1:$B$13".to_string(),
0,
4,
18,
8,
)?;
Stílus, oldalbeállítás és struktúra
A cellaformázás a CellStyle-on keresztül folyik, amely Font, Fill és Borders elemeket tartalmaz, és szelektíven alkalmazható a StyleFlag segítségével. A PageSetup szabályozza a nyomtatás papírméretét és tájolását, a FreezePane a fejlécsorok láthatóságát biztosítja, míg a strukturált táblák a ListObject-en keresztül érkeznek TableStyleType-tal.
Érvényesítés, feltételes formázás és szűrők
Az adatminőségi funkciók a magfelszín részei: Validation szabályok OperatorType-mal, feltételes formázás FormatCondition segítségével, automatikus szűrők AutoFilter-rel, definiált nevek DefinedName-en keresztül, valamint munkafüzet- vagy munkalap-védelem a WorkbookProtection és WorksheetProtection segítségével.
Defenzív betöltés diagnosztikával
A valós XLSX fájlok nem mindig jól formáltak. A LoadOptions javítási flag-eket tesz elérhetővé, a LoadDiagnostics pedig jelentést ad arról, hogy a betöltő mit talált:
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()
);
Gyors kezdés
Add hozzá a crate-et a Cargo.toml-odhoz git függőségként (a crate még nincs közzétéve a crates.io-n):
# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }Ezután hozd létre, mentsd el, és töltsd újra az első munkafüzeted:
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(())
}
Támogatott formátumok
| Formátum | Kiterjesztés | Olvasás | Írás |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
XLSX a jelenlegi kiadás fókusza: teljes round-trip olvasás és írás a Workbook::load_xlsx és a Workbook::save használatával, a LoadFormat és SaveFormat enumok szabályozzák a kifejezett formátum kiválasztását.
Nyílt forráskód és licencelés
Aspose.Cells FOSS a Rust-hoz MIT licenc alatt áll. A teljes forráskód elérhető a GitHub oldalon, és a licenc megengedi a kereskedelmi felhasználást, módosítást és újraelosztást.