kotlin-excel-dsl - Kotlin DSLでExcelファイルをタイプセーフに生成する
(github.com/clroot)KotlinでExcelファイルを作るたびに、Apache POIの冗長なコードが不便でした。セルを1つ作るだけでも Workbook → Sheet → Row → Cell を経由する必要があり、スタイルの適用はさらに複雑です。
そこで、Kotlin DSLでExcel生成をシンプルにするライブラリを作りました。
GitHub: https://github.com/clroot/kotlin-excel-dsl
特徴
- DSL + アノテーションのハイブリッド: 複雑なケースではDSL、単純なケースでは
@Excel、@Columnアノテーション - タイプセーフ: コンパイル時に設定ミスを検証
- CSSスタイル構文: 直感的なスタイル定義
- 基本テーマを提供: Modern、Minimal、Classic
- ヘッダーグループ: 複数行ヘッダーと自動セル結合
使用例
// DSL方式
excel {
sheet<User>("Users") {
column("이름") { it.name }
column("나이") { it.age }
column("가입일") { it.joinedAt }
rows(users)
}
}.writeTo(FileOutputStream("users.xlsx"))
// アノテーション方式
@Excel
data class User(
@Column("이름") val name: String,
@Column("나이") val age: Int
)
excelOf(users).writeTo(output)
スタイル適用
excel {
styles {
header { bold(); backgroundColor(Color.GRAY) }
column("금액") {
body { align(Alignment.RIGHT); numberFormat("#,##0") }
}
}
// ...
}
インストール
implementation("io.clroot.excel:excel-dsl:0.1.0")
Kotlin 2.2.0+、JDK 21+ の環境で利用できます。フィードバック歓迎です!
1件のコメント
個人的に、こういうライブラリがあればと思っていたので、便利に使えそうです! 個人的には Excel ベースのライブラリではありますが、
csvやpdfの export 機能も入るとどうかなと思いますね