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
@Excele@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!
2 comentários
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.
Olá.
Eu tentei abordar isso por meio do método de geração de Excel baseada em templates.
https://github.com/jogakdal/data-processors-with-excel
Agradeço se puder dar uma olhada.