Travailler avec Excel en Rust : bibliothèques pour lire et écrire des tableaux

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec Excel en Rust : aperçu des bibliothèques et exemples de code



Le langage Rust, connu pour ses performances et sa sécurité, offre d'excellentes possibilités pour travailler avec les tableurs Excel. Dans cet article, nous examinerons les trois bibliothèques les plus populaires : rust_xlsxwriter, calamine et xlsx. Vous apprendrez à lire, créer et modifier des fichiers au format .xlsx, ainsi qu'à utiliser des fonctions avancées de formatage.



Pourquoi Rust pour travailler avec Excel ?

Rust est idéal pour les tâches de traitement de données grâce à :

  • Un coût zéro des abstractions — une vitesse élevée avec les fichiers volumineux ;
  • Une gestion sécurisée de la mémoire — élimination des fuites et des segmentation faults ;
  • La multiplateforme — le code fonctionne sur Windows, macOS et Linux ;
  • Une excellente intégration avec d'autres systèmes via FFI.


Bibliothèque rust_xlsxwriter : création de fichiers Excel

rust_xlsxwriter est une bibliothèque moderne pour créer des fichiers Excel avec des capacités de formatage riches. Elle prend en charge les styles, la fusion de cellules, les formules et le formatage conditionnel.



Installation

Ajoutez dans Cargo.toml :

[dependencies]rust_xlsxwriter = "0.77"


Exemple : création d'un rapport avec formatage

Créons un fichier avec des en-têtes, des données et une formule :

use rust_xlsxwriter::*;

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

// Création des styles 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);

// En-têtes worksheet.write_with_format(0, 0, "Produit", &header_format)?; worksheet.write_with_format(0, 1, "Quantité", &header_format)?; worksheet.write_with_format(0, 2, "Prix", &header_format)?; worksheet.write_with_format(0, 3, "Total", &header_format)?;

// Données let items = vec![ ("Ordinateur portable", 5, 1200.00), ("Souris", 10, 25.50), ("Clavier", 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)?; // Formule : quantité * prix worksheet.write_formula(row, 3, &format!("B{}*C{}", row+1, row+1))?; }

// Largeur automatique des colonnes 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!("Fichier report.xlsx créé !"); Ok(())}


Bibliothèque calamine : lecture de fichiers Excel

calamine est un analyseur rapide pour lire les fichiers Excel (.xlsx, .xls, .xlsb). Il ne nécessite pas Excel installé et fonctionne entièrement en mémoire.



Installation

[dependencies]calamine = "0.24"


Exemple : lecture des données d'un fichier

Lisons le fichier précédemment créé et affichons les données dans la console :

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!("Contenu du fichier {} :", path); println!("{:-<40}", "");

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

Recommendations