Wprowadzenie
Zarządzanie arkuszami kalkulacyjnymi jest rdzeniem crate aspose-cells-foss-rust: obiektów modelujących skoroszyt, jego arkusze i ich komórki oraz operacji, które zamieniają dane Rust na prezentowalne pliki XLSX. Ten post przechodzi przez tę powierzchnię — od tworzenia arkuszy i zapisywania typowanych wartości po stylizację, układ strony oraz cechy strukturalne, które sprawiają, że skoroszyty są użyteczne: komentarze, hiperłącza, tabele i zdefiniowane nazwy.
Wszystko, co tutaj pokazano, jest częścią otwarto-źródłowego crate na licencji MIT. Żadna instalacja Microsoft Office nie jest w żaden sposób wymagana; biblioteka odczytuje i zapisuje format pakietu XLSX bezpośrednio.
Ta sekcja została zweryfikowana względem bieżącego modelu źródłowego pod kątem najnowszego zachowania produktu i pokrycia API.
Kluczowe funkcje
Arkusze i kolekcje komórek
Arkusze są zarządzane poprzez kolekcje arkuszy w skoroszycie. Arkusze są dostępne po indeksie lub nazwie, można je przemianować przy użyciu set_name, a ich komórki są dostępne poprzez get_cells (odczyt) lub get_cells_mut (zapis):
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Charts")?;
{
let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Month")?;
cells.get("B1")?.put_value_string("Sales")?;
}
}
Wartości typowane według nazwy lub indeksu
Komórki akceptują ciągi znaków, liczby całkowite, wartości logiczne, liczby dziesiętne oraz daty i godziny za pomocą typowanych setterów. Komórki można adresować w stylu A1 (get("B3")) lub numerycznie (get_by_index(row, column)), co pasuje do generowanych układów:
for month in 1..=12_u32 {
cells
.get_by_index(month, 0)
.put_value_string(format!("Month {month}"))?;
cells
.get_by_index(month, 1)
.put_value_i32((month as i32 * 1000) + (month as i32 * 50))?;
}
Formuły z wartościami w pamięci podręcznej
put_formula_with_cached_value zapisuje tekst formuły razem z wartością, którą Excel powinien wyświetlić przed pierwszą rekalkulacją — ważne, gdy plik jest używany przez inne narzędzia odczytujące wyniki z pamięci podręcznej:
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
Stylowanie i układ strony
CellStyle zawiera Font, Fill i Borders; StyleFlag wybiera, które elementy stylu zostaną zaktualizowane. NumberFormat kontroluje renderowanie wartości, a PageSetup zarządza PaperSizeType i PageOrientationType przy drukowaniu. FreezePane oraz VisibilityType wierszy/kolumn utrzymują duże arkusze w łatwej nawigacji.
Komentarze, hiperłącza i nazwy
Przepływy pracy recenzenta i nawigacja są obsługiwane przez Comment i CommentCollection, Hyperlink wraz z HyperlinkCollection oraz DefinedName z DefinedNameCollection dla zakresów nazwanych.
Strukturalne tabele i filtry
ListObject zamienia zakres w strukturalną tabelę ze stylizacją TableStyleType i wierszami TotalsCalculation; AutoFilter dodaje filtrowanie z warunkami FilterColumn i FilterOperatorType.
Szybki start
Dodaj crate do swojego Cargo.toml jako zależność git (crate nie jest jeszcze opublikowany na crates.io):
# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }Minimalna sesja zarządzania arkuszem kalkulacyjnym — utwórz, zapisz, zapisz, wczytaj ponownie:
use aspose_cells_foss_rust::{CellValue, Workbook};
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
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")?;
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());
Ok(())
}
Obsługiwane formaty
| Format | Rozszerzenie | Odczyt | Zapis |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
Ładowanie akceptuje flagi naprawy LoadOptions (try_repair_package, try_repair_xml) z ustrukturyzowanymi LoadDiagnostics; zapisywanie odbywa się poprzez save, save_xlsx lub save_with_format z wyliczeniem SaveFormat.
Open Source i licencjonowanie
Aspose.Cells FOSS dla Rust jest licencjonowany na zasadzie MIT. Kod źródłowy znajduje się na GitHub; dozwolone jest komercyjne użycie, modyfikacja i redystrybucja.
Rozpoczęcie
- Rozpoczęcie
- Przewodnik dla programistów
- Praca z zarządzaniem arkuszami kalkulacyjnymi
- Artykuły KB
- API Reference
- Strona produktu