Travailler avec Excel en Rust : bibliothèques pour la lecture et l'écriture

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

Rust est un langage de programmation système de plus en plus utilisé pour créer des utilitaires haute performance, y compris pour le traitement de données tabulaires. Contrairement à Python, où pandas ou openpyxl sont la norme, l'écosystème Rust pour travailler avec Excel est moins vaste, mais propose plusieurs solutions matures et rapides. Dans cet article, nous allons examiner trois bibliothèques principales : rust_xlsxwriter (écriture), calamine (lecture) et xlsx (universelle). Vous apprendrez à lire, créer et modifier des fichiers XLSX avec Rust.



Pourquoi utiliser Rust pour Excel ?

Les principaux avantages de Rust pour le travail avec les tableurs :

  • Vitesse — le code compilé traite des millions de lignes plus rapidement que les équivalents interprétés.
  • Sécurité — le système de types strict et la gestion de la propriété empêchent les fuites mémoire et les erreurs d'accès.
  • Multiplateforme — les binaires fonctionnent sur Windows, Linux, macOS sans dépendances.
  • Faible taille — le fichier exécutable final peut faire moins de 5 Mo.


1. Écriture Excel : rust_xlsxwriter

rust_xlsxwriter est un fork de la bibliothèque populaire xlsxwriter, adapté pour Rust. Elle permet de créer des fichiers XLSX à partir de zéro, prend en charge le formatage, la fusion de cellules, les diagrammes et les styles personnalisés.



Installation :

// Cargo.toml[dependencies]rust_xlsxwriter = "0.64"


Exemple : création d'un rapport simple

use rust_xlsxwriter::*;

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

// En-tête let header_format = Format::new() .set_bold() .set_font_color(Color::White) .set_background_color(Color::Blue);

sheet.write_string_with_format(0, 0, "Nom", &header_format)?; sheet.write_string_with_format(0, 1, "Ventes", &header_format)?; sheet.write_string_with_format(0, 2, "Date", &header_format)?;

// Données let data = vec![ ("Produit A", 1500, "2024-01-15"), ("Produit B", 2300, "2024-01-16"), ("Produit C", 800, "2024-01-17"), ];

for (row, (name, sales, date)) in data.iter().enumerate() { sheet.write_string(row as u32 + 1, 0, name)?; sheet.write_number(row as u32 + 1, 1, *sales as f64)?; sheet.write_string(row as u32 + 1, 2, date)?; }

// Largeur automatique des colonnes sheet.set_column_width(0, 15)?; sheet.set_column_width(1, 12)?; sheet.set_column_width(2, 14)?;

workbook.save("report.xlsx")?; println!("Fichier report.xlsx créé"); Ok(())}


La bibliothèque prend en charge tous les types principaux : nombres, chaînes, dates, formules, hyperliens. Pour le formatage, les polices, le remplissage, les bordures et l'alignement sont disponibles.



2. Lecture Excel : calamine

calamine est un analyseur rapide de fichiers XLSX/XLS/XLSB/ODS. Il n'utilise pas de dépendances externes et fonctionne uniquement en lecture. Idéal pour extraire des données de grands tableurs.



Installation :

[dependencies]calamine = "0.24"


Exemple : lecture de toutes les données d'une feuille

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

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

// Récupération de la première feuille if let Some(Ok(range)) = workbook.worksheet_range("Sheet1") { for row in range.rows() { for cell in row { // Affichage de la valeur de la cellule sous forme de chaîne print!("{} | ", cell.to_string()); } println!();

Recommendations