4 pontos por abcdkh1209 2026-01-19 | 1 comentários | Compartilhar no WhatsApp

Sempre que eu criava arquivos Excel em Kotlin, o código verboso do Apache POI era incômodo. Para criar uma única célula, era preciso passar por Workbook → Sheet → Row → Cell, e aplicar estilos era ainda mais complexo.

Por isso, criei uma biblioteca que simplifica a geração de Excel com uma DSL em Kotlin.

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

Características

  • Híbrido de DSL + anotações: para casos complexos, use DSL; para casos simples, as anotações @Excel e @Column
  • Type-safe: valida erros de configuração em tempo de compilação
  • Sintaxe de estilo CSS: definição de estilos intuitiva
  • Temas padrão incluídos: Modern, Minimal, Classic
  • Agrupamento de cabeçalhos: cabeçalhos de múltiplas linhas e mesclagem automática de células

Exemplo de uso

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

Aplicação de estilos

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

Instalação

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

Pode ser usado em ambientes com Kotlin 2.2.0+ e JDK 21+. Feedback é bem-vindo!

1 comentários

 
hshim 2026-01-23

Pessoalmente, parece ser uma biblioteca que eu queria que existisse, então acho que vou conseguir usá-la de forma bem útil! Embora pessoalmente seja uma biblioteca baseada em Excel, fico pensando se não seria interessante incluir também recursos de exportação para CSV ou PDF.