Einleitung
Die Tabellenkalkulationsverwaltung ist der Kern der aspose-cells-foss-rust-Crate: die Objekte, die eine Arbeitsmappe, ihre Blätter und deren Zellen modellieren, sowie die Vorgänge, die Rust-Daten in präsentierbare XLSX-Dateien umwandeln. Dieser Beitrag führt durch diese Oberfläche – vom Erstellen von Blättern und Schreiben typisierter Werte über Styling, Seitenlayout bis hin zu den strukturellen Merkmalen, die Arbeitsmappen nutzbar machen: Kommentare, Hyperlinks, Tabellen und definierte Namen.
Alles, was hier gezeigt wird, ist Teil der Open-Source-Crate unter MIT-Lizenz. Zu keinem Zeitpunkt ist eine Microsoft-Office-Installation erforderlich; die Bibliothek liest und schreibt das XLSX-Paketformat direkt.
Dieser Abschnitt wurde anhand des aktuellen Quellmodells hinsichtlich des neuesten Produktverhaltens und der API-Abdeckung überprüft.
Hauptfunktionen
Arbeitsblätter und Zellsammlungen
Arbeitsblätter werden über die Arbeitsmappen-Worksheet-Sammlungen verwaltet. Blätter werden über Index oder Namen adressiert, mit set_name umbenannt, und ihre Zellen werden über get_cells (lesen) oder get_cells_mut (schreiben) erreicht:
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")?;
}
}
Typisierte Werte nach Name oder Index
Zellen akzeptieren Zeichenketten, Ganzzahlen, Booleans, Dezimalzahlen und Datum-Uhrzeit-Werte über typisierte Setter. Zellen können im A1-Stil (get("B3")) oder numerisch (get_by_index(row, column)) adressiert werden, was für generierte Layouts geeignet ist:
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))?;
}
Formeln mit zwischengespeicherten Werten
put_formula_with_cached_value speichert den Formeltext zusammen mit dem Wert, den Excel vor der ersten Neuberechnung anzeigen soll – wichtig, wenn die Datei von anderen Tools verwendet wird, die zwischengespeicherte Ergebnisse lesen:
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
Styling und Seitenlayout
CellStyle enthält Font, Fill und Borders; StyleFlag wählt aus, auf welche Stil-Aspekte eine Aktualisierung angewendet wird. NumberFormat steuert die Darstellung von Werten, und PageSetup verwaltet PaperSizeType und PageOrientationType für den Druck. FreezePane und Zeilen/Spalten-VisibilityType halten große Blätter navigierbar.
Kommentare, Hyperlinks und Namen
Reviewer-Workflows und Navigation werden durch Comment und CommentCollection, Hyperlink mit HyperlinkCollection sowie DefinedName mit DefinedNameCollection für benannte Bereiche abgedeckt.
Strukturierte Tabellen und Filter
ListObject verwandelt einen Bereich in eine strukturierte Tabelle mit TableStyleType-Styling und TotalsCalculation-Zeilen; AutoFilter fügt Filterung mit FilterColumn und FilterOperatorType-Bedingungen hinzu.
Schnellstart
Füge die Crate zu deinem Cargo.toml als Git-Abhängigkeit hinzu (die Crate ist noch nicht auf crates.io veröffentlicht):
# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }Eine minimale Tabellenkalkulations-Verwaltungssitzung — erstellen, schreiben, speichern, neu laden:
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(())
}
Unterstützte Formate
| Format | Erweiterung | Lesen | Schreiben |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
Das Laden akzeptiert Reparatur-Flags von LoadOptions (try_repair_package, try_repair_xml) mit strukturierten LoadDiagnostics; das Speichern erfolgt über save, save_xlsx oder save_with_format mit dem SaveFormat-Enum.
Open Source & Lizenzierung
Aspose.Cells FOSS für Rust ist unter der MIT-Lizenz lizenziert. Der Quellcode befindet sich auf GitHub; kommerzielle Nutzung, Modifikation und Weiterverteilung sind erlaubt.
Erste Schritte
- Erste Schritte
- Entwicklerhandbuch
- Arbeiten mit Spreadsheet Management
- KB-Artikel
- API Reference
- Produktseite