kotlin-excel-dsl - Genera archivos de Excel de forma type-safe con un DSL de Kotlin
(github.com/clroot)Cada vez que creaba archivos de Excel en Kotlin, me resultaba incómodo el código verboso de Apache POI. Para crear una sola celda hay que pasar por Workbook → Sheet → Row → Cell, y aplicar estilos es todavía más complejo.
Por eso creé una librería que simplifica la generación de Excel con un DSL de Kotlin.
GitHub: https://github.com/clroot/kotlin-excel-dsl
Características
- Híbrido de DSL + anotaciones: para casos complejos, DSL; para casos simples, anotaciones
@Excely@Column - Type-safe: valida errores de configuración en tiempo de compilación
- Sintaxis de estilos tipo CSS: definición de estilos intuitiva
- Temas predeterminados incluidos: Modern, Minimal, Classic
- Grupos de encabezados: encabezados de varias filas y combinación automática de celdas
Ejemplo de uso
// Forma DSL
excel {
sheet<User>("Users") {
column("이름") { it.name }
column("나이") { it.age }
column("가입일") { it.joinedAt }
rows(users)
}
}.writeTo(FileOutputStream("users.xlsx"))
// Forma con anotaciones
@Excel
data class User(
@Column("이름") val name: String,
@Column("나이") val age: Int
)
excelOf(users).writeTo(output)
Aplicación de estilos
excel {
styles {
header { bold(); backgroundColor(Color.GRAY) }
column("금액") {
body { align(Alignment.RIGHT); numberFormat("#,##0") }
}
}
// ...
}
Instalación
implementation("io.clroot.excel:excel-dsl:0.1.0")
Se puede usar en entornos con Kotlin 2.2.0+ y JDK 21+. ¡Se agradece el feedback!
1 comentarios
Parece una librería que personalmente me habría gustado que existiera, así que creo que será muy útil. Aunque personalmente es una librería basada en Excel, me pregunto si también estaría bien que incluyera funciones de exportación a CSV o PDF.