kotlin-excel-dsl - Tạo tệp Excel type-safe bằng Kotlin DSL
(github.com/clroot)Mỗi khi tạo tệp Excel trong Kotlin, tôi thấy đoạn mã dài dòng của Apache POI khá bất tiện. Chỉ để tạo một ô cũng phải đi qua Workbook → Sheet → Row → Cell, còn việc áp dụng style thì lại càng phức tạp hơn.
Vì vậy, tôi đã tạo một thư viện giúp đơn giản hóa việc tạo Excel bằng Kotlin DSL.
GitHub: https://github.com/clroot/kotlin-excel-dsl
Tính năng
- Kết hợp DSL + annotation: trường hợp phức tạp thì dùng DSL, trường hợp đơn giản thì dùng annotation
@Excel,@Column - Type-safe: kiểm tra lỗi cấu hình ngay tại thời điểm biên dịch
- Cú pháp style kiểu CSS: định nghĩa style trực quan
- Cung cấp theme mặc định: Modern, Minimal, Classic
- Nhóm header: header nhiều hàng và tự động gộp ô
Ví dụ sử dụng
// Cách dùng DSL
excel {
sheet<User>("Users") {
column("이름") { it.name }
column("나이") { it.age }
column("가입일") { it.joinedAt }
rows(users)
}
}.writeTo(FileOutputStream("users.xlsx"))
// Cách dùng annotation
@Excel
data class User(
@Column("이름") val name: String,
@Column("나이") val age: Int
)
excelOf(users).writeTo(output)
Áp dụng style
excel {
styles {
header { bold(); backgroundColor(Color.GRAY) }
column("금액") {
body { align(Alignment.RIGHT); numberFormat("#,##0") }
}
}
// ...
}
Cài đặt
implementation("io.clroot.excel:excel-dsl:0.1.0")
Có thể dùng trong môi trường Kotlin 2.2.0+ và JDK 21+. Rất mong nhận được phản hồi!
1 bình luận
Đây đúng là một thư viện mà cá nhân tôi từng mong có, nên có vẻ sẽ dùng được khá hữu ích! Dù đây là thư viện dựa trên Excel, nhưng tôi cũng nghĩ sẽ hay nếu sau này có thêm tính năng export CSV hoặc PDF.