4 ポイント 投稿者 abcdkh1209 2026-01-19 | 1件のコメント | WhatsAppで共有

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件のコメント

 
hshim 2026-01-23

個人的に、こういうライブラリがあればと思っていたので、便利に使えそうです! 個人的には Excel ベースのライブラリではありますが、csvpdf の export 機能も入るとどうかなと思いますね