Arbeiten mit Excel in Rust: Bibliotheken zum Lesen und Schreiben von Tabellen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeiten mit Excel in Rust: Bibliotheksübersicht und Codebeispiele



Die Sprache Rust, bekannt für ihre Leistung und Sicherheit, bietet hervorragende Möglichkeiten für die Arbeit mit Excel-Tabellen. In diesem Artikel betrachten wir die drei beliebtesten Bibliotheken: rust_xlsxwriter, calamine und xlsx. Sie erfahren, wie Sie Dateien im .xlsx-Format lesen, erstellen und ändern, und lernen erweiterte Formatierungsfunktionen anzuwenden.



Warum Rust für die Arbeit mit Excel?

Rust ist ideal für Datenverarbeitungsaufgaben aufgrund von:

  • Nullkosten-Abstraktionen – hohe Geschwindigkeit bei der Arbeit mit großen Dateien;
  • Sicherer Speicherverwaltung – Vermeidung von Speicherlecks und Segmentation Faults;
  • Plattformunabhängigkeit – Code läuft unter Windows, macOS und Linux;
  • Hervorragender Integration mit anderen Systemen über FFI.


Bibliothek rust_xlsxwriter: Erstellen von Excel-Dateien

rust_xlsxwriter ist eine moderne Bibliothek zum Erstellen von Excel-Dateien mit umfangreichen Formatierungsmöglichkeiten. Sie unterstützt Stile, Zellenverbünde, Formeln und bedingte Formatierung.



Installation

Fügen Sie in Cargo.toml hinzu:

[dependencies]rust_xlsxwriter = "0.77"


Beispiel: Erstellen eines Berichts mit Formatierung

Wir erstellen eine Datei mit Kopfzeilen, Daten und einer Formel:

use rust_xlsxwriter::*;

fn main() -> Result<(), XlsxError> { let mut workbook = Workbook::new(); let worksheet = workbook.add_worksheet();

// Stile erstellen let header_format = Format::new() .set_bold() .set_font_color(Color::White) .set_background_color(Color::Blue) .set_border(FormatBorder::Thin);

let money_format = Format::new() .set_num_format("$#,##0.00") .set_border(FormatBorder::Thin);

// Kopfzeilen worksheet.write_with_format(0, 0, "Produkt", &header_format)?; worksheet.write_with_format(0, 1, "Menge", &header_format)?; worksheet.write_with_format(0, 2, "Preis", &header_format)?; worksheet.write_with_format(0, 3, "Summe", &header_format)?;

// Daten let items = vec![ ("Laptop", 5, 1200.00), ("Maus", 10, 25.50), ("Tastatur", 7, 45.00), ];

for (i, (name, qty, price)) in items.iter().enumerate() { let row = i as u32 + 1; worksheet.write(row, 0, name)?; worksheet.write(row, 1, *qty)?; worksheet.write_with_format(row, 2, *price, &money_format)?; // Formel: Menge * Preis worksheet.write_formula(row, 3, &format!("B{}*C{}", row+1, row+1))?; }

// Automatische Spaltenbreite worksheet.set_column_width(0, 15)?; worksheet.set_column_width(1, 12)?; worksheet.set_column_width(2, 10)?; worksheet.set_column_width(3, 12)?;

workbook.save("report.xlsx")?; println!("Datei report.xlsx erstellt!"); Ok(())}


Bibliothek calamine: Lesen von Excel-Dateien

calamine ist ein schneller Parser zum Lesen von Excel-Dateien (.xlsx, .xls, .xlsb). Er benötigt kein installiertes Excel und arbeitet vollständig im Arbeitsspeicher.



Installation

[dependencies]calamine = "0.24"


Beispiel: Daten aus einer Datei lesen

Wir lesen die zuvor erstellte Datei und geben die Daten in der Konsole aus:

use calamine::{open_workbook, Reader, Xlsx};

fn main() -> Result<(), Box> { let path = "report.xlsx"; let mut workbook: Xlsx<_> = open_workbook(path)?;

if let Some(Ok(range)) = workbook.worksheet_range("Sheet1") { println!("Inhalt der Datei {}:", path); println!("{:-<40}", "");

for row in range.rows() { for cell in row { match cell { calamine::Data::Stri

Empfehlungen