Show GN: kotlin-excel-dsl - Kotlin DSL로 엑셀 파일을 타입 세이프하게 생성하기

1 day ago 4

Kotlin에서 엑셀 파일을 만들 때마다 Apache POI의 장황한 코드가 불편했습니다. 셀 하나 만들려면 Workbook → Sheet → Row → Cell을 거쳐야 하고, 스타일 적용은 더 복잡하죠.

그래서 Kotlin DSL로 엑셀 생성을 단순화하는 라이브러리를 만들었습니다.

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+ 환경에서 사용 가능합니다. 피드백 환영합니다!

Read Entire Article