Travailler avec Excel en JavaScript (Node.js)
Le développement web moderne nécessite souvent une interaction logicielle avec des tableurs. L'exportation de rapports, l'importation de données depuis des systèmes comptables, le traitement de grands volumes d'informations — tout cela fait du travail avec Excel dans Node.js une tâche très demandée. Dans cet article, nous examinerons les trois bibliothèques les plus populaires pour travailler avec le format XLSX : xlsx, exceljs et excel4node. Vous apprendrez comment installer chacune d'elles, créer, modifier et lire des fichiers Excel.
Bibliothèque xlsx (SheetJS)
xlsx est la bibliothèque la plus populaire et la plus légère pour travailler avec des tableurs dans Node.js. Elle prend en charge non seulement XLSX, mais aussi XLS, CSV, ODS et d'autres formats. Son principal avantage est la simplicité de son API et sa grande vitesse d'exécution.
Installation :
npm install xlsxExemple : création et écriture d'un fichier Excel
const XLSX = require('xlsx');
// Créer une feuille de calcul avec des donnéesconst data = [ { Nom: 'Anna', Âge: 28, Ville: 'Moscou' }, { Nom: 'Ivan', Âge: 35, Ville: 'Saint-Pétersbourg' }, { Nom: 'Olga', Âge: 22, Ville: 'Kazan' }];
const worksheet = XLSX.utils.json_to_sheet(data);const workbook = XLSX.utils.book_new();XLSX.utils.book_append_sheet(workbook, worksheet, 'Employés');
// Enregistrer le fichierXLSX.writeFile(workbook, 'employees.xlsx');console.log('Fichier employees.xlsx créé !');Exemple : lecture d'un fichier existant
const workbook = XLSX.readFile('employees.xlsx');const sheetName = workbook.SheetNames[0];const worksheet = workbook.Sheets[sheetName];const jsonData = XLSX.utils.sheet_to_json(worksheet);
console.log('Données du fichier :', jsonData);Avantages :
- Taille minimale (environ 50 Ko compressé)
- Prise en charge de multiples formats (XLSX, XLS, CSV, ODS)
- API simple pour la conversion JSON ↔ tableau
Inconvénients :
- Possibilités de formatage limitées (styles, polices, couleurs)
- Difficultés avec les cellules fusionnées et les formules complexes
Bibliothèque exceljs
exceljs est une bibliothèque avancée pour travailler avec des fichiers XLSX. Elle offre un contrôle total sur le formatage : vous pouvez gérer les polices, les couleurs, les bordures, les cellules fusionnées, le formatage conditionnel et même ajouter des images.
Installation :
npm install exceljsExemple : création d'un rapport formaté
const ExcelJS = require('exceljs');
async function createReport() { const workbook = new ExcelJS.Workbook(); const worksheet = workbook.addWorksheet('Rapport');
// Définir les colonnes worksheet.columns = [ { header: 'Produit', key: 'product', width: 20 }, { header: 'Quantité', key: 'quantity', width: 15 }, { header: 'Prix', key: 'price', width: 15 } ];
// Ajouter des données worksheet.addRow({ product: 'Ordinateur portable', quantity: 10, price: 75000 }); worksheet.addRow({ product: 'Souris', quantity: 50, price: 1500 });
// Formatage de l'en-tête const headerRow = worksheet.getRow(1); headerRow.font = { bold: true, color: { argb: 'FFFFFFFF' } }; headerRow.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF4472C4' } };
// Formatage des cellules de prix const priceColumn = worksheet.getColumn(3); priceColumn.numFmt = '#,##0.00';
// Enregistrer await workbook.xlsx.writeFile('report.xlsx'); console.log('Rapport créé avec formatage !');}
createReport();Exemple : lecture et modification d'un fichier
const workbook = new ExcelJS.Workbook();await workbook.xlsx.readFile('report.xlsx');const worksheet = w Aussi dans la bibliothèque
Travailler avec Markdown en TypeScript : bibliothèques, parseurs et outils
Dapper C# (.NET) : guide complet avec exemples
Conteneur d'injection de dépendances pour JavaScript (Node.js) — Awilix
Travailler avec CSV en Swift (iOS/macOS) : bibliothèques et exemples