Travailler avec Excel en JavaScript (Node.js) : aperçu des bibliothèques et exemples pratiques
Bien que PythonLib soit dédié au langage Python, dans le développement web moderne, il est souvent nécessaire de traiter des tableurs Excel côté serveur avec Node.js. JavaScript (Node.js) est un environnement puissant pour créer des applications serveur, et le travail avec des feuilles de calcul est l'une des tâches courantes. Dans cet article, nous examinerons trois bibliothèques principales pour travailler avec Excel dans Node.js : node-xlsx (xlsx), exceljs et excel4node, et nous fournirons des exemples d'utilisation.
Pourquoi travailler avec Excel dans Node.js ?
Côté serveur, il est souvent nécessaire de :
- Générer des rapports au format XLSX à télécharger par les utilisateurs ;
- Importer des données à partir de fichiers Excel téléchargés dans une base de données ;
- Traiter automatiquement des listes de prix, des tableaux de comptabilité et d'autres documents ;
- Créer des rapports complexes avec mise en forme, graphiques et styles.
Node.js gère parfaitement ces tâches en fournissant plusieurs bibliothèques spécialisées.
Bibliothèque xlsx (SheetJS)
SheetJS (package xlsx) est la bibliothèque la plus populaire et la plus mature pour travailler avec Excel en JavaScript. Elle prend en charge la lecture et l'écriture de nombreux formats : XLSX, XLS, CSV, ODS et autres. Son principal avantage est la simplicité et la rapidité.
Installation
npm install xlsxExemple : création et enregistrement d'un fichier Excel
const XLSX = require('xlsx');
// Créer un nouveau classeurconst workbook = XLSX.utils.book_new();
// Données pour le tableauconst data = [ ['Nom', 'Âge', 'Ville'], ['Anna', 28, 'Moscou'], ['Ivan', 35, 'Saint-Pétersbourg'], ['Maria', 22, 'Kazan']];
// Convertir le tableau en feuille de calculconst worksheet = XLSX.utils.aoa_to_sheet(data);
// Ajouter la feuille au classeurXLSX.utils.book_append_sheet(workbook, worksheet, 'Utilisateurs');
// Écrire le fichier sur le disqueXLSX.writeFile(workbook, 'users.xlsx');console.log('Fichier users.xlsx créé !');Exemple : lecture d'un fichier existant
const XLSX = require('xlsx');
const workbook = XLSX.readFile('users.xlsx');const sheetName = workbook.SheetNames[0]; // Prendre la première feuilleconst worksheet = workbook.Sheets[sheetName];
// Convertir la feuille en tableau d'objetsconst jsonData = XLSX.utils.sheet_to_json(worksheet);console.log(jsonData);Bibliothèque exceljs
ExcelJS est une bibliothèque plus moderne et plus fonctionnelle. Elle offre des possibilités riches en matière de mise en forme : styles de cellules, polices, couleurs, fusion de cellules, mise en forme conditionnelle, travail avec des images et des graphiques. Elle prend en charge les flux (streams) pour travailler avec de gros fichiers.
Installation
npm install exceljsExemple : création d'un rapport formaté
const ExcelJS = require('exceljs');
async function createReport() { const workbook = new ExcelJS.Workbook(); const sheet = workbook.addWorksheet('Rapport');
// Définir les colonnes sheet.columns = [ { header: 'Produit', key: 'product', width: 30 }, { header: 'Prix', key: 'price', width: 15 }, { header: 'Quantité', key: 'quantity', width: 15 } ];
// Ajouter des données sheet.addRow({ product: 'Ordinateur portable', price: 75000, quantity: 10 }); sheet.addRow({ product: 'Souris', price: 1500, quantity: 50 }); sheet.addRow({ product: 'Clavier', price: 3500, quantity: 30 });
// Formater l'en-tête const headerRow = sheet.getRow(1); headerRow.font = { bold: true, size: 12, color: { argb: 'FFFFFFFF' } }; headerRow.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF4472C4' } };
// Alignement headerRow.alignment = { vertical: 'middle', horizontal: 'ce Aussi dans la bibliothèque
Travailler avec les ZIP/archives en C++ : bibliothèques libzip et zlib
Travail avec les dates en Java : aperçu des bibliothèques java.time, Joda-Time et Apache Commons
Faker PHP : guide complet avec exemples
Apprentissage automatique en C# : bibliothèques ML.NET et Accord.NET
Benchmark C++ : guide complet avec exemples