4 puntos por abcdkh1209 2026-01-19 | 1 comentarios | Compartir por WhatsApp

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 @Excel y @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

 
hshim 2026-01-23

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.