<aside>
</aside>
Apache POI™ - Download Release Artifacts
<Apache POI 다운로드페이지 하단에서 클릭>
<필요한 버전에 맞게 찾아 다운로드>
<aside>
앞축을 풀어서 각 폴더에서 아래 jar파일을 찾아 포함시켜 줌 </aside>
프로젝트에서 외부 라이브러리 포함 방법1
프로젝트에서 외부 라이브러리 포함 방법2
package test;
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class Test {
public static void main(String[] args) throws Exception {
String fileName = "excel.xls";
try (FileInputStream fis = new FileInputStream(fileName);
Workbook workbook =fileName.endsWith(".xls") ?
new HSSFWorkbook(fis):new XSSFWorkbook(fis)) {
Sheet sheet = workbook.getSheetAt(0); // 첫 번째 시트를 가져옴
for (Row row : sheet) {
for (Cell cell : row) {
// 셀 유형에 따라 데이터를 읽음
switch (cell.getCellType()) {
case STRING:
System.out.print(cell.getStringCellValue() + "\\t");
break;
case NUMERIC://날짜,실수,정수
if (DateUtil.isCellDateFormatted(cell)) {
System.out.print(cell.getDateCellValue() + "\\t");
} else {
double numericValue=cell.getNumericCellValue();
//정수인지 실수인지 구분
if(numericValue==Math.floor(numericValue)) {
//소숫점이하를 버리값과 비교해서 같다면 (정수.0)
System.out.print((int)cell.getNumericCellValue()+ "\\t");
}else {
System.out.print(numericValue+ "\\t");
}
}
break;
case BOOLEAN:
System.out.print(cell.getBooleanCellValue() + "\\t");
break;
case FORMULA:
System.out.print(cell.getCellFormula() + "\\t");
break;
default:
System.out.print(" ");
}
}
System.out.println(); // 행을 출력한 후 줄바꿈
}
} catch (IOException e) {
System.out.println("파일을 읽는 중 오류가 발생했습니다: " + e.getMessage());
}
}
}