Arbeiten mit Spreadsheet Management
Arbeiten mit der Tabellenkalkulationsverwaltung
Die Tabellenkalkulationsverwaltung deckt die alltägliche Objektoberfläche des Crates ab: Arbeitsblätter, Zellensammlungen, typisierte Werte, Formeln, Styling und die strukturellen Merkmale, die eine Arbeitsmappe nutzbar machen. Der Einstiegspunkt ist immer ein Workbook.
Worksheets
Blätter werden über die Arbeitsblatt-Sammlungen der Arbeitsmappe verwaltet — Lesezugriff über get_worksheets, Veränderung über get_worksheets_mut. Blätter werden per Index (get(0)) oder Name (get_by_name) adressiert, mit set_name umbenannt und mit add_worksheet hinzugefügt:
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Data")?;
}Zugriff auf Zellen und typisierte Werte
Zellen werden im A1-Stil oder numerisch adressiert. get_by_index(row, column) eignet sich für generierte Layouts:
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}"))?;
}Beim Auslesen gibt display_string_value den Anzeigetext zurück und value_type meldet den gespeicherten Typ.
Formeln mit zwischengespeicherten Ergebnissen
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;Der zwischengespeicherte Wert ist das, was Excel vor seiner ersten Neuberechnung anzeigt — stellen Sie ihn bereit, damit die Nutzer der Datei sofort korrekte Ergebnisse sehen.
Styling
CellStyle aggregiert Font, Fill und Borders; StyleFlag steuert, welche Stil-Aspekte ein Update anwendet, sodass die vorhandene Formatierung erhalten bleibt, wo Sie sie nicht überschreiben. NumberFormat bestimmt, wie Werte dargestellt werden.
Seitenlayout und Navigation
PageSetup verwaltet das Drucklayout: PaperSizeType, PageOrientationType und Ränder. FreezePane hält Kopfzeilen beim Scrollen sichtbar, und die Sichtbarkeit von Zeilen und Spalten wird mit VisibilityType gesteuert.
Struktur: Tabellen, Namen, Kommentare, Hyperlinks
ListObjectverwandelt einen Bereich in eine strukturierte Tabelle mitTableStyleType-Formatierung undTotalsCalculationSummenzeilen.DefinedNameundDefinedNameCollectionverwalten benannte Bereiche.Comment/CommentCollectionundHyperlink/HyperlinkCollectiondecken Annotation und Navigation ab.
Tipps und bewährte Verfahren
- Behalte veränderliche Leihgaben (
get_worksheets_mut,get_cells_mut) innerhalb eines Gültigkeitsblocks; speichere die Arbeitsmappe, nachdem der Block geschlossen wurde. - Verwende
get_by_indexfür Schleifen und erzeugte Layouts; A1-Namen für feste Positionen. - Wende Stile mit einem
StyleFlagan, damit nicht verwandte Formatierungen unbeeinflusst bleiben. - Benenne wichtige Bereiche mit
DefinedNameanstatt Adressen fest zu kodieren.
Häufige Probleme
| Problem | Ursache | Lösung |
|---|---|---|
| Ausleihfehler beim Speichern der Arbeitsmappe | Mutable Arbeitsblatt-Ausleihe ist noch aktiv | Schließe den Gültigkeitsbereichsblock, bevor du save aufrufst |
| Formel zeigt 0 in Excel | Kein zwischengespeicherter Wert angegeben | Verwenden Sie put_formula_with_cached_value mit dem erwarteten Ergebnis |
| Blatt nicht gefunden | Namensabweichung | Adresse nach Index oder prüfen Sie die Schreibweise von set_name |
FAQ
Wie füge ich ein zweites Arbeitsblatt hinzu?
Rufen Sie add_worksheet im Arbeitsbuch auf und holen Sie es dann über die Arbeitsblatt-Sammlung per Index oder Name ab.
Kann ich im selben Durchlauf lesen und schreiben?
Ja — laden Sie mit Workbook::load_xlsx, ändern Sie über get_worksheets_mut und save zum selben oder zu einem neuen Pfad.
Wandeln typisierte Setter Werte um?
Es werden keine Konvertierungen durchgeführt: Jeder put_value_*-Setter speichert seinen nativen Typ; display_string_value gibt den Anzeigetext beim Lesen aus.
API Reference Zusammenfassung
| Klasse/Methode | Beschreibung |
|---|---|
Workbook.add_worksheet | Fügen Sie dem Arbeitsbuch ein Blatt hinzu |
Worksheet.set_name | Ein Blatt umbenennen |
Worksheet.get_cells_mut | Veränderbare Zellsammlung |
CellMut.put_value_string | Typisierter String-Setter |
CellMut.put_formula_with_cached_value | Formel plus zwischengespeichertes Ergebnis |
CellStyle | Schriftart-, Füll- und Rahmenformatierung |
StyleFlag | Wählt aus, welche Stilaspekte gelten |
PageSetup | Druck- und Seitenlayout |
ListObject | Strukturierte Tabellen |