Travailler avec Excel en Kotlin : bibliothèques Apache POI et Apache POI pour Kotlin

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 Kotlin : bibliothèques Apache POI et wrapper Kotlin



Kotlin, en tant que langage de programmation moderne pour la JVM, offre d'excellentes possibilités pour automatiser le travail avec les documents bureautiques. Dans cet article, nous verrons comment travailler efficacement avec les fichiers Excel (XLS et XLSX) en Kotlin, en utilisant les bibliothèques populaires Apache POI et son wrapper orienté Kotlin Apache POI for Kotlin.



Pourquoi Kotlin pour travailler avec Excel ?

Kotlin propose une syntaxe plus concise et plus sûre par rapport à Java, ce qui est particulièrement utile lorsqu'on travaille avec des API Excel volumineuses. En utilisant Kotlin, vous pouvez :

  • Réduire la quantité de code passe-partout
  • Utiliser des types sécurisés et la null-safety
  • Appliquer des fonctions d'extension pour améliorer la lisibilité
  • Vous intégrer facilement avec les bibliothèques Java existantes


Bibliothèque principale : Apache POI

Apache POI est la norme de facto pour travailler avec les documents Microsoft Office dans l'écosystème JVM. Elle prend en charge :

  • La lecture et l'écriture de fichiers XLS (HSSF) et XLSX (XSSF)
  • Le travail avec les formules, les styles, les cellules fusionnées
  • La création de graphiques et de tableaux croisés dynamiques
  • Le traitement de gros fichiers via SXSSF (streaming)


Pour l'intégration dans Gradle (Kotlin DSL), ajoutez dans build.gradle.kts :

dependencies {    implementation("org.apache.poi:poi:5.3.0")    implementation("org.apache.poi:poi-ooxml:5.3.0")}


Bibliothèque wrapper : Apache POI for Kotlin

Il existe plusieurs wrappers Kotlin qui simplifient le travail avec POI. L'un des plus populaires est kotlin-poi (com.github.doyaaaaaken:kotlinpoi). Il ajoute des fonctions d'extension et un style DSL pour créer des fichiers Excel.

Intégration :

repositories {    mavenCentral()}

dependencies { implementation("com.github.doyaaaaaken:kotlinpoi:1.0.0")}


Exemple 1 : Création d'un fichier XLSX simple (POI pur)

Créons un classeur avec une feuille et remplissons-la de données :

import org.apache.poi.xssf.usermodel.XSSFWorkbookimport java.io.FileOutputStream

fun createSimpleExcel() { val workbook = XSSFWorkbook() val sheet = workbook.createSheet("Données") // Création des en-têtes val headerRow = sheet.createRow(0) headerRow.createCell(0).setCellValue("Nom") headerRow.createCell(1).setCellValue("Âge") headerRow.createCell(2).setCellValue("Ville") // Remplissage des données val data = listOf( listOf("Anna", 28, "Moscou"), listOf("Ivan", 35, "Saint-Pétersbourg"), listOf("Maria", 22, "Kazan") ) data.forEachIndexed { index, rowData -> val row = sheet.createRow(index + 1) rowData.forEachIndexed { cellIndex, value -> when (value) { is String -> row.createCell(cellIndex).setCellValue(value) is Int -> row.createCell(cellIndex).setCellValue(value.toDouble()) else -> row.createCell(cellIndex).setCellValue(value.toString()) } } } // Largeur automatique des colonnes for (i in 0..2) { sheet.autoSizeColumn(i) } // Sauvegarde du fichier FileOutputStream("output.xlsx").use { fileOut -> workbook.write(fileOut) } workbook.close() println("Fichier créé : output.xlsx")}


Exemple 2 : Lecture d'un fichier Excel (POI pur)

import org.apache.poi.ss.usermodel.WorkbookFactoryimport java.io.FileInputStream

fun readExcel(filePath: String) { val file = FileInputStream(filePath) val workbook = WorkbookFactory.create(file) val sheet = workbook.getSheetAt(0) println("Lecture de la feuille : ${sheet.sheetName}") println("Nombre total de lignes : ${sheet.physicalNumberOfRows}") for (row in sheet) { val r

Recommendations