[SpringBoot] 엑셀 값

Excel에는 두 가지 확장자가 있습니다.

.xls : 97-03 통합 문서, 이전 Excel 파일. HSSF~

.xlsx : 현재 Excel 문서의 확장명입니다. XSSF~, SXSSF~ (대용량 처리)

implementation 'org.apache.poi:poi:5.2.2'
implementation 'org.apache.poi:poi-ooxml:5.2.2'

수입

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.*;

InputStream으로 가져와서 Amazos S3에서 파일을 읽고 있습니다.

(MultipartFile을 InputStream으로 가져올 수도 있습니다.)

암호

Workbook workbook = null;
if(resourcePath.endsWith(".xlsx")){
	workbook = new XSSFWorkbook(file);
}else if(resourcePath.endsWith(".xls")){
	workbook = new HSSFWorkbook(file);
}else{
	throw new RuntimeException("file type not matched");
}
if(workbook == null){
	throw new RuntimeException("no data in file");
}

// 해당 인덱스에 있는 시트를 반환.
Sheet sheet = workbook.getSheetAt(0);

// 모든 행의 개수를 반환.
int rows = sheet.getPhysicalNumberOfRows();

// 지정된 행 번호에 해당하는 row 데이터를 반환.
Row row = sheet.getRow(rowIdx);

// 지정된 셀 번호에 해당하는 Cell 값을 반환.
Cell cell = row.getCell(1);

// 셀의 값을 String타입으로 반환.
String cellText = cell.getStringCellValue();

위의 방법을 조합하면 Excel 파일에서 셀 데이터를 읽거나 쓸 수 있습니다.