Travailler avec Excel en TypeScript : bibliothèques, outils et exemples de code

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 TypeScript : aperçu complet des outils

\n\n

TypeScript, en tant que surcouche statiquement typée de JavaScript, offre d'excellentes possibilités pour créer des applications d'entreprise complexes. L'une des tâches fréquentes est la gestion des fichiers Microsoft Excel — lecture, création et édition de tableaux. Dans cet article, nous examinerons les meilleures bibliothèques pour travailler avec Excel en TypeScript, leurs caractéristiques et fournirons des exemples pratiques de code.

\n\n

Bibliothèques populaires pour travailler avec Excel

\n\n

À ce jour, il existe plusieurs solutions matures. Voici les principales :

\n\n
    \n
  • ExcelJS — la bibliothèque la plus puissante avec prise en charge des styles, formules, graphiques et traitement par flux.
  • \n
  • xlsx (SheetJS) — une bibliothèque légère et rapide, idéale pour les opérations simples de lecture/écriture.
  • \n
  • node-excel-export — obsolète, mais encore utilisée dans des projets legacy.
  • \n
  • Excel4Node — spécialisée dans la création de rapports complexes avec mise en forme.
  • \n
\n\n

Pour la plupart des projets modernes en TypeScript, nous recommandons ExcelJS et xlsx (SheetJS). Examinons-les plus en détail.

\n\n

Installation et configuration

\n\n

L'installation des deux bibliothèques se fait via npm :

\n\n
npm install exceljs\nnpm install xlsx
\n\n

Pour TypeScript, il est nécessaire d'installer les types (s'ils ne sont pas inclus) :

\n\n
npm install --save-dev @types/node
\n\n

Notez que ExcelJS est livré avec des types intégrés, tandis que pour xlsx, les types doivent être installés séparément :

\n\n
npm install --save-dev @types/xlsx
\n\n

Exemple 1 : Création d'un fichier Excel avec ExcelJS

\n\n

Créons un tableau simple avec des données et des styles :

\n\n
import ExcelJS from 'exceljs';\n\nasync function createWorkbook() {\n    const workbook = new ExcelJS.Workbook();\n    const sheet = workbook.addWorksheet('Rapport');\n\n    // Définir les colonnes\n    sheet.columns = [\n        { header: 'ID', key: 'id', width: 10 },\n        { header: 'Nom', key: 'name', width: 25 },\n        { header: 'Date', key: 'date', width: 15 },\n        { header: 'Montant', key: 'amount', width: 12 }\n    ];\n\n    // Ajouter des lignes\n    sheet.addRow({ id: 1, name: 'Ivan Petrov', date: '2024-01-15', amount: 1500.50 });\n    sheet.addRow({ id: 2, name: 'Maria Sidorova', date: '2024-02-20', amount: 2300.75 });\n    sheet.addRow({ id: 3, name: 'Alexei Ivanov', date: '2024-03-10', amount: 890.25 });\n\n    // Stylisation de l'en-tête\n    const headerRow = sheet.getRow(1);\n    headerRow.font = { bold: true, size: 12, color: { argb: 'FFFFFFFF' } };\n    headerRow.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF4472C4' } };\n    headerRow.alignment = { horizontal: 'center' };\n\n    // Sauvegarder le fichier\n    await workbook.xlsx.writeFile('output.xlsx');\n    console.log('Fichier créé !');\n}\n\ncreateWorkbook();
\n\n

Ce code crée un fichier output.xlsx avec trois lignes de données et un bel en-tête.

\n\n

Exemple 2 : Lecture d'un fichier Excel avec xlsx (SheetJS)

\n\n

Lisons un fichier existant et affichons les données dans la console :

\n\n
import * as XLSX from 'xlsx';\n\nfunction readExcel(filePath: string) {\n    const workbook = XLSX.readFile(filePath);\n    const sheetName = workbook.SheetNames[0]; // Prendre la première feuille\n    const worksheet = workbook.Sheets[sheetName];\n\n    // Convertir en JSON\n    const data: any[] = XLSX.utils.sheet_to_json(worksheet);\n\n    console.log('Données du fichier :');\n    data.forEach((row, index) => {\n        console.log(`Ligne ${index + 1} :`, row);\n    });\n\n    return data;\n}\n\n// Utilisation\nconst data = readExcel('input.xlsx');
\n\n

La bibliothèque xlsx convertit automatiquement le tableau en un tableau d'objets, où les clés sont les en-têtes de colonnes.

Recommendations