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 |