Arbeiten mit Excel in Rust: Bibliotheken und Codebeispiele
Die Sprache Rust, bekannt für ihre Leistung und Sicherheit, eignet sich hervorragend für die Verarbeitung von Tabellendaten. Wenn Sie Excel-Dateien (Formate .xlsx, .xls) lesen, erstellen oder bearbeiten müssen, gibt es im Rust-Ökosystem mehrere ausgereifte Bibliotheken. In diesem Artikel betrachten wir drei wichtige: calamine (Lesen), rust_xlsxwriter (Schreiben) und xlsx (vollständiger Zyklus). Sie erfahren, wie Sie sie installieren, und sehen funktionierende Codebeispiele.
Bibliothek calamine – Lesen von Excel-Dateien
calamine ist eine schnelle und leichtgewichtige Bibliothek zum Lesen von Excel-Dateien (xlsx, xls, xlsb, ods). Sie erfordert keine Installation externer Abhängigkeiten und funktioniert „out of the box". Sie unterstützt das Lesen von Zellen, Blättern, Formeln und Metadaten.
Installation
[dependencies]calamine = "0.26"Beispiel: Daten aus einer Datei lesen
use calamine::{open_workbook, Reader, Xlsx};
fn main() -> Result<(), Box<dyn std::error::Error>> { // Datei öffnen let mut workbook: Xlsx<_> = open_workbook("data.xlsx")?;
// Blatt nach Namen abrufen if let Some(Ok(range)) = workbook.worksheet_range("Sheet1") { for row in range.rows() { for cell in row { // Jede Zelle ist ein DataType match cell { calamine::Data::String(s) => print!("{} ", s), calamine::Data::Float(f) => print!("{} ", f), calamine::Data::Int(i) => print!("{} ", i), _ => print!("? "), } } println!(); } }
Ok(())}Dieser Code öffnet die Datei data.xlsx, liest das Blatt Sheet1 und gibt alle Zellen zeilenweise aus. calamine erkennt automatisch den Datentyp (Zeichenkette, Zahl, Datum usw.).
Bibliothek rust_xlsxwriter – Erstellen und Schreiben von Excel
rust_xlsxwriter ist eine leistungsstarke Bibliothek zum Erstellen von xlsx-Dateien. Sie unterstützt Formatierung, Zellenverbindung, Diagramme, bedingte Formatierung und vieles mehr. Es ist das direkte Gegenstück zur Python-Bibliothek xlsxwriter.
Installation
[dependencies]rust_xlsxwriter = "0.76"Beispiel: Erstellen eines einfachen Berichts
use rust_xlsxwriter::{Workbook, Format, Color};
fn main() -> Result<(), Box<dyn std::error::Error>> { let mut workbook = Workbook::new();
// Format für Überschriften erstellen let header_format = Format::new() .set_bold() .set_font_color(Color::White) .set_background_color(Color::Blue);
// Blatt hinzufügen let sheet = workbook.add_worksheet();
// Überschriften schreiben sheet.write_with_format(0, 0, "Name", &header_format)?; sheet.write_with_format(0, 1, "Alter", &header_format)?; sheet.write_with_format(0, 2, "Stadt", &header_format)?;
// Daten schreiben sheet.write(1, 0, "Anna")?; sheet.write(1, 1, 28)?; sheet.write(1, 2, "Moskau")?;
sheet.write(2, 0, "Ivan")?; sheet.write(2, 1, 35)?; sheet.write(2, 2, "Sankt Petersburg")?;
// In Datei speichern workbook.save("report.xlsx")?;
println!("Datei report.xlsx erfolgreich erstellt!"); Ok(())}In diesem Beispiel erstellen wir eine Datei mit formatierten Überschriften (fetter Text, weiße Schrift auf blauem Hintergrund) und zwei Datenzeilen. rust_xlsxwriter unterstützt auch Diagramme, Bilder und Pivot-Tabellen.
Bibliothek xlsx – Vollständiger Zyklus (Lesen + Schreiben)
xlsx ist eine universelle Bibliothek, die sowohl das Lesen als auch das Erstellen von xlsx-Dateien ermöglicht. Sie ist weniger beliebt als
Auch in der Bibliothek
MassTransit für C# (.NET): Komplettguide mit Praxisbeispielen
WebSocket-Bibliotheken für Rust: Tokio-tungstenite und async-tungstenite für Echtzeit
league/csv für PHP: Komplette Anleitung mit Beispielen
Logging in Rust: Überblick über die besten Bibliotheken und Lösungen für Ihr Projekt
Objekt-Serialisierung in Rust: serde, bincode, JSON und YAML