Hayden's Archive
[Java] 자바에서 Apache POI로 엑셀 파일 읽기 & 쓰기 본문
관련 포스팅 : 파이썬에서 파이썬에서 openpyxl로 엑셀 읽기 & 쓰기
xls, xlsx 와 같은 엑셀 파일을 파이썬으로 입출력하는 것은 실습했는데
스프링 프로젝트에서 쓰려면 자바로도 입출력하는 것이 필요하다.
그래서 Apache POI를 사용해서 자바로도 실습해보겠다.
위 공식 홈페이지에서 다운 받을 수 있다.
하지만 난 스프링 프로젝트에서 써야 하므로 Maven으로 의존성을 추가해보겠다.
다음 코드를 pom.xml 에 추가한다.
<!-- Apache POI -->
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
코드는 다음 블로그를 참고하였다.
코드를 분석하면서 그림을 그려보았는데 원리를 그림으로 요약해보면 간단히 다음과 같이 표현할 수 있다.
( 참고 문서 : https://poi.apache.org/apidocs/4.1 )
나는 Spring Framework에서 구현했고, 읽기와 쓰기가 모두 가능하도록 합쳤다.
또 가장 최신 버전인 Apache POI 4.1.2를 사용하면서 적용되지 않는 부분이 생겨 수정했다.
예컨대 HSSFCell.CELL_TYPE_FORMULA는 FORMULA만 써줘야 에러가 나지 않는다.
또 OS마다 파일 구분자가 다르기 때문에 File Separator를 사용했다.
테스트 완료한 풀 코드는 깃허브에 올렸다.
github.com/devyeony/file-input-output/tree/main/xlsx/java/apachePOI