Wprowadzenie
Aspose.Cells FOSS dla Rust wprowadza rodzinę Aspose.Cells FOSS do ekosystemu Rust. Biblioteka aspose-cells-foss-rust pozwala aplikacjom Rust tworzyć skoroszyty Excel XLSX od podstaw, ładować istniejące pliki, modyfikować ich zawartość i zapisywać wynik — bez instalacji Microsoft Office, automatyzacji COM ani zewnętrznego środowiska uruchomieniowego.
Biblioteka jest licencjonowana na licencji MIT i skierowana jest do edycji Rust 2021. Spełnia konwencje, których oczekują programiści Rust: konstruktory takie jak Workbook::new, obsługa błędów oparta na Result poprzez CellsError oraz explicite mutowalne akcesory, takie jak get_worksheets_mut i get_cells_mut, które utrzymują zasady pożyczania w jasności. Jeśli tworzysz usługi backendowe, narzędzia CLI lub potoki danych, które muszą generować lub odczytywać arkusze kalkulacyjne, ta biblioteka zapewnia natywny sposób realizacji.
Ta sekcja została przeglądnięta w odniesieniu do bieżącego modelu źródłowego pod kątem najnowszego zachowania produktu oraz pokrycia API.
Aspose.Cells FOSS jest już dostępny dla .NET, C++, Java, Python oraz TypeScript; pakiet Rust dołącza do rodziny z tym samym założeniem: rzetelne, weryfikowalne wsparcie XLSX pod licencją permissive.
Co zawiera
Skoroszyty, Arkusze i Typowane Wartości Komórek
Workbook zaczyna się od jednego arkusza i rozwija się za pomocą add_worksheet. Komórki akceptują wartości typowane — ciągi znaków, liczby całkowite, wartości logiczne, liczby dziesiętne i daty-czasy — poprzez dedykowane settery, więc nie są potrzebne konwersje typu 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")?;
Formuły z buforowanymi wynikami
Formuły są zapisywane razem z buforowaną wartością, więc zapisany plik otwiera się w Excelu z prawidłowymi wynikami od razu — nie jest wymagana ponowna kalkulacja:
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
Wykresy zakotwione w zakresach danych
Typy wykresów kolumnowych, liniowych i inne z wyliczenia ChartType można zakotwiczyć w zakresach komórek na arkuszu, a geometria wykresu może być odczytana z załadowanych plików:
let mut charts = sheet.get_charts();
charts.add(
ChartType::Column,
"Charts!$B$1:$B$13".to_string(),
0,
4,
18,
8,
)?;
Stylizacja, ustawienia strony i struktura
Formatowanie komórek odbywa się za pośrednictwem CellStyle wraz z Font, Fill i Borders, stosowane selektywnie przy użyciu StyleFlag. PageSetup kontroluje rozmiar papieru i orientację przy drukowaniu, FreezePane utrzymuje widoczne wiersze nagłówka, a tabele strukturalne pojawiają się poprzez ListObject z TableStyleType.
Walidacja, formatowanie warunkowe i filtry
Funkcje zapewniające jakość danych są częścią rdzenia: reguły Validation z OperatorType, formatowanie warunkowe przez FormatCondition, automatyczne filtry za pomocą AutoFilter, zdefiniowane nazwy poprzez DefinedName oraz ochronę skoroszytu lub arkusza poprzez WorkbookProtection i WorksheetProtection.
Ładowanie defensywne z diagnostyką
Rzeczywiste pliki XLSX nie zawsze są poprawnie sformatowane. LoadOptions udostępnia flagi naprawy, a LoadDiagnostics raportuje, co napotkał loader:
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()
);
Szybki start
Dodaj bibliotekę do swojego Cargo.toml jako zależność git (biblioteka nie została jeszcze opublikowana na crates.io):
# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }Następnie utwórz, zapisz i ponownie wczytaj swój pierwszy skoroszyt:
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(())
}
Obsługiwane formaty
| Format | Rozszerzenie | Odczyt | Zapis |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
XLSX jest głównym tematem bieżącego wydania: pełny cykl odczytu i zapisu za pomocą Workbook::load_xlsx i Workbook::save, przy użyciu wyliczeń LoadFormat i SaveFormat sterujących jawnym wyborem formatu.
Open Source i licencjonowanie
Aspose.Cells FOSS dla Rust jest licencjonowane na licencji MIT. Pełny kod źródłowy jest dostępny na GitHub, a licencja zezwala na komercyjne użycie, modyfikację i redystrybucję.