Travailler avec Excel en JavaScript (Node.js) : aperçu des bibliothèques et exemples de code
Bien que PythonLib soit dédié au langage Python, le travail avec les tableurs Excel est souvent nécessaire également dans l'environnement Node.js. JavaScript (notamment côté serveur) est activement utilisé pour l'automatisation des rapports, l'importation de données depuis les systèmes CRM et la génération de listes de prix. Dans cet article, nous allons examiner trois bibliothèques principales pour travailler avec Excel dans Node.js, leurs fonctionnalités et fournir des exemples pratiques de code.
Pourquoi Node.js pour Excel ?
Node.js est un choix idéal pour les microservices et les scripts qui traitent de gros volumes de données. Les bibliothèques pour Excel permettent de :
- Lire des fichiers
.xlsxet.xlsexistants. - Créer de nouveaux tableaux à partir de zéro.
- Formater les cellules (couleurs, polices, bordures).
- Travailler avec des formules, des styles et des cellules fusionnées.
- Exporter des données en CSV.
Top 3 des bibliothèques pour Excel dans Node.js
1. ExcelJS — le plus fonctionnel
ExcelJS est une bibliothèque puissante avec un support complet des formats xlsx. Elle permet de travailler avec des flux (streams), ce qui est crucial pour les fichiers volumineux. Elle prend en charge les styles, le formatage conditionnel, les graphiques et la protection des feuilles.
Installation :
npm install exceljsExemple 1 : Lecture d'un fichier existant
const ExcelJS = require('exceljs');
async function readExcel(filePath) { const workbook = new ExcelJS.Workbook(); await workbook.xlsx.readFile(filePath); const worksheet = workbook.getWorksheet(1); // Première feuille worksheet.eachRow((row, rowNumber) => { console.log(`Ligne ${rowNumber}: ${row.values.join(', ')}`); });}
readExcel('data.xlsx');Exemple 2 : Création d'un fichier avec formatage
const ExcelJS = require('exceljs');
async function createStyledExcel() { const workbook = new ExcelJS.Workbook(); const sheet = workbook.addWorksheet('Rapport'); // En-tête avec police en gras et remplissage const headerRow = sheet.getRow(1); headerRow.values = ['Nom', 'Âge', 'Ville']; headerRow.font = { bold: true, size: 12 }; headerRow.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FFFF00' } // Fond jaune }; // Données sheet.addRow(['Anna', 28, 'Moscou']); sheet.addRow(['Ivan', 35, 'Saint-Pétersbourg']); // Largeur des colonnes sheet.getColumn(1).width = 15; sheet.getColumn(2).width = 10; await workbook.xlsx.writeFile('output.xlsx'); console.log('Fichier créé !');}
createStyledExcel();2. xlsx (SheetJS) — léger et rapide
La bibliothèque xlsx (également connue sous le nom de SheetJS) est un "cheval de bataille" pour les opérations simples. Elle ne prend pas en charge le formatage avancé, mais gère parfaitement la lecture/écriture de données. Elle prend en charge les formats xlsx, xls, csv, ods.
Installation :
npm install xlsxExemple 3 : Lecture et conversion en JSON
const XLSX = require('xlsx');
function readToJSON(filePath) { const workbook = XLSX.readFile(filePath); const sheetName = workbook.SheetNames[0]; const sheet = workbook.Sheets[sheetName]; // Convertir la feuille en tableau d'objets const data = XLSX.utils.sheet_to_json(sheet); console.log(data);}
readToJSON('data.xlsx');Exemple 4 : Écriture d'un tableau de données
const XLSX = require('xlsx');
function writeFromArray() { const data = [ { Name: 'Olga', Age: 30, City: 'Kazan' }, { Name: 'Pierre', Age: 42, City: 'Ekaterinbourg' } ]; const worksheet = XLSX.utils.json_to_sheet(data); const workbook = XLSX.utils.book_new(); XLSX.utils Aussi dans la bibliothèque
Marten C# (.NET) : guide complet avec exemples
Parsing HTML en C# (.NET) : bibliothèques HtmlAgilityPack et AngleSharp
Protocol Buffers C++ : guide complet avec exemples pratiques
Travailler avec CSV en Kotlin : bibliothèques et exemples de code