안녕하세요
'개발세끼'의 첫끼 입니다.
오늘은 지난 첫 포스팅으로 소개 드렸었던 ToExcel 라이브러리의 쓰기 방법에 대해서 이어서 작성해 볼까 합니다.
우선 ToExcel의 쓰기 방법은 크게 두가지 방법이 있는데요.
지난 번 읽기 때와 마찬가지로 Mapping Model을 기반으로 자동으로 엑셀로 쓰는 방법을 소개 드릴게요~
toexcel라이브러리의 프로젝트 설정 방법은 이전 포스팅을 참고해 주세요
가장 쉽게 JAVA 엑셀 파일 읽고 쓰기 ( #읽기)
안녕하세요 '개발세끼'의 첫끼 입니다 첫 포스팅인 만큼, 제가 개발한 오픈소스 중 하나인, ToExcel이라는 라이브러리를 소개 해 드리면 어떨까 싶습니다. 이글에서는 첫번째로 엑셀을 읽어 들이는 방법부터 소개..
dev3m.tistory.com
import com.github.ckpoint.toexcel.annotation.ExcelHeader;
import lombok.ToString;
@ToString
public class UserModel {
@ExcelHeader(headerName = "이름")
private String name;
@ExcelHeader(headerName = "나이")
private Integer age;
@ExcelHeader(headerName = "성별")
private Gender gender;
@ExcelHeader(headerName = "연락처")
private String phone;
public UserModel(String name, Integer age, Gender gender, String phone) {
this.name = name;
this.age = age;
this.gender = gender;
this.phone = phone;
}
}
enum Gender {
남자, 여자;
}
엑셀로 옮길 model은 위 코드처럼, 지난 번 포스팅에서 정의해둔 UserModel class를 재사용 하도록 합니다.
이제 엑셀로 담을 데이터를 가공해야 겠죠?
List<UserModel> users = Arrays.asList(
new UserModel("임희섭", 25, Gender.남자, "010-0000-0001")
, new UserModel("전건우", 24, Gender.남자, "010-0000-0002")
, new UserModel("이용준", 22, Gender.남자, "010-0000-0003")
, new UserModel("박상오", 27, Gender.남자, "010-0000-0004")
, new UserModel("신동준", 24, Gender.남자, "010-0000-0005")
, new UserModel("황형언", 20, Gender.남자, "010-0000-0006")
, new UserModel("임다미", 18, Gender.여자, "010-0000-0007")
, new UserModel("조창환", 28, Gender.남자, "010-0000-0008")
, new UserModel("박준영", 27, Gender.남자, "010-0000-0009")
, new UserModel("조슬기", 19, Gender.여자, "010-0000-0010")
);
10명의 사용자를 가지는 list를 만들어 줍니다.
이후, ToWorkBook과 ToWorkSheet를 생성 해줍니다.
ToWorkBook toWorkBook = new ToWorkBook(WorkBookType.XSSF);
ToWorkSheet toWorkSheet = toWorkBook.createSheet();
이때, ToWorkBook 생성자에 파라메터로는, (XSSF, HSSF) 둘중의 하나의 타입으로 지정해 주어야 합니다.
1. HSSF : xls (~2003 엑셀타입)
2. XSSF : xlsx ( 2003~ 엑셀타입)
이후 toWorkBook안에는 하나의 시트도 존재 하지 않기 때문에, createSheet 메소드 호출을 통해 시트를 생성 해줍니다.
자! 이제 모든 준비가 끝났습니다.
아래와 같이 sheet의 from으로 list를 시트안에 셀로 옮겨 준 다음,
workbook의 write 메소드를 호출해서 파일로 옮겨 적어 줍니다.
write시 확장자는 필수가 아니에요, workbook을 생성할때 지정한 타입에 해당하는 확장자를 자동으로 넣어 줍니다.
toWorkSheet.from(users);
toWorkBook.write("target/users");
위 이미지 처럼, 엑셀이 자동으로 잘 생성 된걸 확인했네요!
이상으로, java에서 model을 엑셀로 변환하는 가장 쉬운 방법이였습니다.
'다우 & Web > JAVA' 카테고리의 다른 글
Functional Interfcae를 활용한 Resources close 패턴 (2) | 2019.11.04 |
---|---|
ENUM + Funcational Interface 활용하기 (0) | 2019.11.03 |
가장 쉽게 JAVA 엑셀 파일 읽고 쓰기 ( #읽기) (0) | 2019.10.26 |