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 파일에서 셀 데이터를 읽거나 쓸 수 있습니다.
