4 points par abcdkh1209 2026-01-19 | 1 commentaires | Partager sur WhatsApp

Quand je devais créer des fichiers Excel en Kotlin, le code verbeux d’Apache POI était à chaque fois pénible. Pour créer une seule cellule, il faut passer par Workbook → Sheet → Row → Cell, et l’application des styles est encore plus complexe.

J’ai donc créé une bibliothèque qui simplifie la génération d’Excel avec une DSL Kotlin.

GitHub: https://github.com/clroot/kotlin-excel-dsl

Fonctionnalités

  • Hybride DSL + annotations : DSL pour les cas complexes, annotations @Excel et @Column pour les cas simples
  • Type-safe : validation des erreurs de configuration à la compilation
  • Syntaxe de style CSS : définition des styles intuitive
  • Thèmes par défaut fournis : Modern, Minimal, Classic
  • Groupes d’en-têtes : en-têtes sur plusieurs lignes et fusion automatique des cellules

Exemple d’utilisation

// DSL 방식  
excel {  
    sheet<User>("Users") {  
        column("이름") { it.name }  
        column("나이") { it.age }  
        column("가입일") { it.joinedAt }  
        rows(users)  
    }  
}.writeTo(FileOutputStream("users.xlsx"))  
  
// 어노테이션 방식  
@Excel  
data class User(  
    @Column("이름") val name: String,  
    @Column("나이") val age: Int  
)  
excelOf(users).writeTo(output)  

Application des styles

excel {  
    styles {  
        header { bold(); backgroundColor(Color.GRAY) }  
        column("금액") {  
            body { align(Alignment.RIGHT); numberFormat("#,##0") }  
        }  
    }  
    // ...  
}  

Installation

implementation("io.clroot.excel:excel-dsl:0.1.0")  

Utilisable avec Kotlin 2.2.0+ et JDK 21+. Vos retours sont les bienvenus !

1 commentaires

 
hshim 2026-01-23

C’est le genre de bibliothèque que j’aurais personnellement aimé avoir, donc je pense qu’elle sera très utile ! Même si c’est à la base une bibliothèque orientée Excel, je me dis qu’il serait aussi intéressant d’y ajouter des fonctionnalités d’export CSV ou PDF.