Praca z zarządzaniem arkuszami kalkulacyjnymi

Praca z zarządzaniem arkuszami kalkulacyjnymi

Praca z zarządzaniem arkuszami kalkulacyjnymi

Zarządzanie arkuszami kalkulacyjnymi obejmuje codzienną powierzchnię obiektową crate: arkusze, kolekcje komórek, wartości typowane, formuły, stylizację oraz cechy strukturalne, które czynią skoroszyt użytecznym. Punktem wejścia jest zawsze Workbook.


Worksheets

Arkusze są zarządzane poprzez kolekcje arkuszy skoroszytu — odczyt za pomocą get_worksheets, modyfikacja za pomocą get_worksheets_mut. Arkusze są adresowane według indeksu (get(0)) lub nazwy (get_by_name), zmieniane nazwą przy użyciu set_name oraz dodawane przy użyciu add_worksheet:

let mut workbook = Workbook::new();
{
    let mut worksheets = workbook.get_worksheets_mut();
    let sheet = worksheets.get(0)?;
    sheet.set_name("Data")?;
}

Dostęp do komórek i wartości typowane

Komórki są adresowane w stylu A1 lub numerycznie. get_by_index(row, column) pasuje do generowanych układów:

let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Month")?;
for month in 1..=12_u32 {
    cells
        .get_by_index(month, 0)
        .put_value_string(format!("Month {month}"))?;
}

Odczytując, display_string_value zwraca tekst wyświetlany, a value_type raportuje przechowywany typ.


Formuły z buforowanymi wynikami

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

Wartość buforowana to to, co Excel wyświetla przed pierwszym przeliczeniem — podaj ją, aby odbiorcy pliku od razu widzieli prawidłowe wyniki.


Styling

CellStyle agreguje Font, Fill i Borders; StyleFlag kontroluje, które elementy stylu zostają zastosowane przy aktualizacji, tak aby istniejące formatowanie było zachowane tam, gdzie nie jest nadpisane. NumberFormat określa, jak wartości są renderowane.


Ustawienia strony i nawigacja

PageSetup zarządza układem wydruku: PaperSizeType, PageOrientationType oraz marginesami. FreezePane utrzymuje wiersze nagłówka widoczne podczas przewijania, a widoczność wierszy i kolumn wykorzystuje VisibilityType.


Struktura: Tabele, Nazwy, Komentarze, Hyperlinki

  • ListObject zamienia zakres w tabelę strukturalną z TableStyleType stylizacją i TotalsCalculation wierszami sum.
  • DefinedName i DefinedNameCollection zarządzają nazwanymi zakresami.
  • Comment / CommentCollection oraz Hyperlink / HyperlinkCollection obejmują adnotacje i nawigację.

Wskazówki i najlepsze praktyki

  • Trzymaj mutable borrows (get_worksheets_mut, get_cells_mut) wewnątrz bloku zakresu; zapisz skoroszyt po zamknięciu bloku.
  • Użyj get_by_index do pętli i generowanych układów; nazwy A1 dla stałych pozycji.
  • Stosuj style za pomocą StyleFlag, aby niepowiązane formatowanie pozostało nietknięte.
  • Nazwij ważne zakresy przy użyciu DefinedName zamiast twardego kodowania adresów.

Typowe problemy

ProblemPrzyczynaNaprawa
Błąd borrow przy zapisywaniu workbookMutable worksheet borrow wciąż aktywnyZamknij blok zakresu przed wywołaniem save
Formuła wyświetla 0 w ExcelNie podano wartości w pamięci podręcznejUżyj put_formula_with_cached_value z oczekiwanym wynikiem
Nie znaleziono arkuszaNiezgodność nazwyAdresuj po indeksie lub sprawdź pisownię set_name

FAQ

Jak dodać drugi arkusz?

Wywołaj add_worksheet na skoroszycie, a następnie pobierz go z kolekcji arkuszy według indeksu lub nazwy.

Czy mogę czytać i zapisywać w jednym przebiegu?

Tak — wczytaj przy użyciu Workbook::load_xlsx, zmień poprzez get_worksheets_mut i save do tej samej lub nowej ścieżki.

Czy typowane settery konwertują wartości?

Nie stosuje się żadnych konwersji: każdy setter put_value_* przechowuje swój natywny typ; display_string_value wyświetla tekst wyświetlany przy odczycie.


API Reference Podsumowanie

Klasa/MetodaOpis
Workbook.add_worksheetDodaj arkusz do skoroszytu
Worksheet.set_nameZmień nazwę arkusza
Worksheet.get_cells_mutModyfikowalna kolekcja komórek
CellMut.put_value_stringUstawiający typowany ciąg znaków
CellMut.put_formula_with_cached_valueFormuła plus wynik z pamięci podręcznej
CellStyleCzcionka, wypełnienie i formatowanie obramowania
StyleFlagWybiera, które elementy stylu mają zastosowanie
PageSetupDruk i układ strony
ListObjectStrukturalne tabele

Zobacz także

 Polski