Travailler avec Excel en JavaScript (Node.js) : bibliothèques et exemples

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 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 xlsx


Exemple : 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 exceljs


Exemple : 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

Recommendations