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

FormatRozszerzenieOdczytZapis
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

Powiązane zasoby