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
@Excelet@Columnpour 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 !
2 commentaires
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.
Bonjour,
J’ai essayé une approche basée sur des modèles pour générer des fichiers Excel.
https://github.com/jogakdal/data-processors-with-excel
Merci d’y jeter un œil.