자바에서는 Word, Excel, Power Point 파일등의 파일을 다루기 위한 POI 라는 라이브러리가 존재한다.
아파치 소프트웨어 재단에서 만든 라이브러리로 Microsoft Office 파일을 자바 언어로 읽고 쓰는 기능 제공한다.
Apache POI - the Java API for Microsoft Documents
<!--+ |breadtrail +--> <!--+ |start Menu, mainarea +--> <!--+ |start Menu +--> <!--+ |end Menu +--> <!--+ |start content +--> Apache POI - the Java API for Microsoft Documents Project News 25 November 2023 - POI 5.2.5 available The Apache POI team is pleas
poi.apache.org
Workbook 종류는 아래와 같다.
- HSSF : Excel 2007 하위버전(.xls) 파일 포맷을 사용할 때 사용
- XSSF(읽기 쓰기 가능) : Excel 2007 (.xlsx) 파일 포맷을 사용할 때 사용
- SXSSF(쓰기만 가능) : 대용량 엑셀 파일을 출력할 때 사용
자바에서 사용하기 위해서는 아래와 같다.
우선 메이븐 추가가 필요하다.
메이븐에 대해서는 아래 참고 포스팅 참고 바란다.
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.2.5</version> </dependency> |
예제코드는 아래와 같다.
XSSF WorkBook
#workbook 생성 XSSFWorkbook workbook = new XSSFWorkbook(); #sheet 생성 XSSFSheet sheet = workbook.createSheet("SheetName"); #row 생성 XSSFRow row = sheet.createRow(index); #cell생성 XSSFCell cell = row.createCell(index); #cell 값 설정 cell.setCellValue("value"); #workbook 저장 FileOutputStream fos = new FileOutputStream(new File("test.xlsx")); workbook.write(fos); fos.close(); |
SXSSF WorkBook
#workbook 생성 File file = new File("test.xlsx"); XSSFWorkbook workbook = new XSSFWorkbook(file); #sheet 객체 XSSFSheet sheet = workbook.getSheet("SheetName"); #sheet의 row 개수 sheet.getPhysicalNumberOfRows(); #row 객체 XSSFRow row = sheet.getRow(index); #row의 cell 개수 row.getPhysicalNumberOfCells(); #cell 객체 XSSFCell cell = row.getCell(index); #cell 값 cell.toString(); |
참고 포스팅
https://thenicesj.tistory.com/197
빌드 관리도구 Maven / Gradle
Spring 을 사용하게 되면 프로젝트 생성시 빌드 도구를 maven이나 gradle 중에 하나를 선택하게 된다. 나의 경험으로는 안드로이드 앱을 관리할때는 gradle을 주로 사용해왔고, 웹이나 스프링 등의 프
thenicesj.tistory.com
'IT > Java' 카테고리의 다른 글
Apache HttpClient 와 CloseableHttpClient 차이점 +(DefaultHttpClient / HttpClientBuilder) (29) | 2024.05.01 |
---|---|
줄바꿈 하기 (\n, \r, \r\n 의 차이) / System.lineSeparator() (31) | 2024.04.30 |
openfeign에서 header에 값 추가 (21) | 2024.04.24 |
IncorrectResultSizeDataAccessException (23) | 2024.04.23 |
@RequestPart? (22) | 2024.04.22 |
댓글