Workbook 종류

HSSF : Excel 2007 하위버전(.xls) 파일 포매을 사용할 때 사용

XSSF : Excel 2007 (,xlsx) 파일 포맷을 사용할 때 사용

SXSSF : 대용량 액셀 파일을 출력할 때 사용

 

XSSF, SXSSF 차이

XSSF

  • 읽기, 쓰기가 가능하다.
  • 메모리에 파일데이터를 쌇아두고 사용하기 때문에 용량이 큰 경우 Out Of Memory 에러가 발생한다.

 

SXSSF

  • 쓰기만 가능하다.
  • 임시파일을 중간중간 생성하여 메모리를 적게 사용하기 때문에 XSSF 보다 매우 큰 엑셀 파일을 생성할 수 있다.
  • XSSF는 전체 행에 대한 컨트롤이 가능하지만 SXSSF는 지정된 행(window size)에 관해서만 컨트롤이 가능해서 메모리를 적게 사용한다.

 

SXSSFWorkbook Example

workbook 생성

 

SXSSFWorkbook workbook = new SXSSFWorkbook(accessRowSize);

XSSFWorkbook과의 가장 큰 차이다. ACCESS_ROW_SIZE를 정의하여 메모리를 적게 사용한다.

100으로 설정한다면 100개의 ROW씩 메모리에 올린다. 그렇기 때문에 XSSFWorkbookdptj qkftodgksms OutOfMemory 문제 즉 Memory leak 문제를 SXSSFWorkbook을 사용하여 해결할 수 있다.

 

 

sheet 생성

SXSSFSheet sheet = workbook.createSheet("sheet명");

row 객체

SXSSFRow row = sheet.createRow(index);

cell 객체

SXSSFCell cell = row.createCell(index);

cell 값

cell.setCellValue("value");

workbook 저장

FileOutputStream fos = new FileOutputStream(new File("excel경로"));
workbook.write(fos);
fos.close();

'JAVA' 카테고리의 다른 글

[JAVA] Apache POI 엑셀 스타일, 폰트  (1) 2023.05.19
[JAVA] File Object  (0) 2023.05.19
JAVA - 정규표현식(regex)  (0) 2022.11.25
JAVA - 입력(Scanner, InputStream, BufferedReader)  (1) 2022.11.25
JAVA - 4-12_임의의 정수 만들기  (0) 2022.11.14
복사했습니다!