[자바] Excel파일 작성하기

Nux·2022년 7월 11일
0
post-custom-banner

Apache POI

  • 엑셀, 파워포인트, 워드 등 MS오피스 파일을 자바로 다룰 수 있게 해주는 라이브러리

세팅

  • pom.xml
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>

하위 컴포넌트

  • POIFS(Poor Obfuscation Implementation File System) : 마이크로소프트 오피스의 OLE 2 Compound document 파일 포맷을 읽고 쓰는 컴포넌트. 모든 오피스 파일 포맷은 OLE2 방식이므로 하위 모든 컴포넌트의 기반이 된다.
  • HSSF(Horrible SpreadSheet Format) : 마이크로소프트 엑셀 파일포맷을 읽고 쓰는 컴포넌트로서 엑셀 97버전부터 현재까지 지원한다.
  • XSSF(XML SpreadSheet Format) : 마이크로소프트 엑셀 2007부터 지원하는 오피스 오픈 XML 파일 포맷인 *.xlsx 파일을 읽고 쓰는 컴포넌트이다.
  • HPSF(Horrible Property Set Format) : 오피스 파일의 문서요약 정보를 읽는데 사용되는 컴포넌트이다.
  • HWPF(Horrible Word Processor Format) : 마이크로소프트 워드 97(*.doc) 파일을 읽고 쓰는데 사용되는 컴포넌트이다. 아직까지는 개발 초기단계이다.
  • HSLF(Horrible Slid Layout Format) : 마이크로소프트 파워포인트 파일을 읽고 쓰는데 사용되는 컴포넌트이다.
  • HDGF(Horrible DiaGram Format) : 마이크로소프트 비지오 파일을 읽는데 사용하는 컴포넌트이다.
  • HPBF(Horrible PuBlisher Format) : 마이크로소프트 퍼블리셔 파일을 다루는데 사용되는 컴포넌트이다.
  • HSMF(Horrible Stupid Mail Format) : 마이크로소프트 아웃룩에서 사용되는 *.msg 파일을 다루는데 사용되는 컴포넌트이다.
  • DDF(Dreadful Drawing Format) : 마이크로소프트 오피스에서 사용되는 이미지 파일을 읽어오는데 사용하는 컴포넌트이다.

엑셀파일 생성하기

workbook 생성

XSSFWorkbook workbook = new XSSFWorkbook();

sheet 생성

XSSFSheet sheet = workbook.createSheet("시트이름");

시트

row 생성

XSSFRow xssfRow = XSSFSheet.createRow(n);
  • n의 위치에 새로운 행 생성
    • 행은 0부터 시작하니 주의

생성한 row에 cell 생성

Cell cell = XSSFRow.createCell(n);
  • n행에 셀 생성
    • 셀도 행처럼 0부터 시작하니 주의

기타

🟣폰트 설정

XSSFFont font = xssfWb.createFont();

글꼴 지정

Font.setFontName("글꼴");

폰트 크기

Font.setFontHeightInPoints((short)n);
  • 폰트 크기를 n으로 설정함

폰트 두껍게

Font.setBold(true);

폰트적용

cellStyle.setFont(Font);

🟣셀 꾸미기

CellStyle cellStyle = workbook.createCellStyle();

가운데 정렬

cellStyle.setAlignment(HorizontalAlignment.CENTER);

테두리

cellStyle.setBorderRight(BorderStyle.THIN);
cellStyle.setBorderLeft(BorderStyle.THIN);
cellStyle.setBorderTop(BorderStyle.THIN);
cellStyle.setBorderBottom(BorderStyle.THIN);
  • 전후좌우로 얇은 테두리를 만듦

🟣셀 설정

XSSFCell xssfCell = null;

셀 병합

XSSFSheet.addMergedRegion(new CellRangeAddress(첫행, 마지막행, 첫열, 마지막열))

셀에 스타일 지정

xssfCell.setCellStyle(cellStyle);

셀에 값 지정

xssfCell.setCellValue("셀에 넣을 내용");

참고
https://ko.wikipedia.org/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_POI
post-custom-banner

0개의 댓글