Springboot를 통해 웹페이지 개발중 엑셀을 다루기 위해서
아파치의 poi 라이브러리를 사용하기로 했다.
1. POI 라이브러리 넣기(Maven 사용)
-위치: pom.xml
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.15</version>
</dependency>
poi 라이브러리중 3.17버전을 사용했다.
자세한내용은( https://poi.apache.org/apidocs/index.html ) 를 참조하면 된다.
2. 간단 사용법은 https://poi.apache.org/text-extraction.html 에보면
간단하게는 행(row) 셀(cell) 시트(Sheet) 요렇게 3개만 알면됩니당
스타일관련된건 스타일 쪽 doc을 보고 개발 ㄱㄱ!
3. 읽기 팁
읽기 위해서 기본 설정되있는 cell type 의 Enum 을 사용합니다.
_NONE
@Internal(since="POI 3.15 beta 3") public static final CellType _NONEUnknown type, used to represent a state prior to initialization or the lack of a concrete type. For internal use only.
NUMERIC
public static final CellType NUMERICNumeric cell type (whole numbers, fractional numbers, dates)
STRING
public static final CellType STRINGString (text) cell type
FORMULA
public static final CellType FORMULAFormula cell typeSee Also:FormulaType
BLANK
public static final CellType BLANKBlank cell type
BOOLEAN
public static final CellType BOOLEANBoolean cell type
ERROR
public static final CellType ERRORError cell typeSee Also:FormulaError
요렇게 되어있는 문서를 참조해보면
시트안에있는 로우의 특정 셀마다 값을 읽을때 마다 case형식으로 처리를 한다(보통..?)
FileInputStream fileData = new FileInputStream("불러올 파일 경로/이름.xlsx");
HSSFWorkbook workbook = new HSSFWorkbook(fis);
HSSFSheet sheet = workbook.getSheetAt(0); //시트 수
int rows = sheet.getPhysicalNumberOfRows(); // 행의 수
를 통해서 반복문을 작성하고
행에서 시트를 읽을때
whitch(cell.getCellType()){
//숫자경우
case HSSHSSFCell.CELL_TYPE_NUMERIC:
value = cell.getNumericCellValue();
brea;
case HSSHSSFCell.CELL_TYPE_STRING:
value = cell.getStringCellValue();
brea;
.....생략
}
이런식으로 특정 셀의 형식에 맞게 값을 뽑아준다.
4. 쓰기 팁!
다음글로!
'IT-Programming&+ > JAVA' 카테고리의 다른 글
[JAVA] 자바 조건문(if문, 중첩if문) (0) | 2019.07.04 |
---|---|
[JAVA] 자바 JDK 설치 및 개발환경 구축(windows10, 환경변수 설정) (0) | 2019.06.25 |
[JAVA] JDK 이전버전 다운로드 하는 방법(1.7, 1.8) (1) | 2019.06.25 |
[SpringBoot] Closing inbound before receiving peer's close_notify 예외 없애기 (1) | 2019.01.31 |
spring boot gradle lombok 추가방법 (0) | 2019.01.15 |