작성
·
199
0
안녕하세요.
인프런 TPC 실전프로젝트를 수강중인 박민우입니다.
다름이 아니라 강의에서는 엑셀 확장자가 .xls로 수업중인데,
저는 실무에서 .xlsx로 엑셀을 많이 활용해서 이 확장자로 엑셀을 읽어들이고 있습니다.
현재 인터넷을 뒤져봐서 관련 library들을 다운받고, 실행하기까지는 성공했는데,
아래와 같이 에러가 뜹니다.
일단 읽을려고 하는 데이터들은 잘 읽어져서 오는데, 빨간색 5줄이 떠서요.
인터넷에 찾아보니깐 jdk9 이상부터는 뜨는 에러라고 하는 것 같더군요.
혹시 이 에러 지울려면 어떻게 해야 되는지 알 수 있을까요???
제 소스와 현재 TPCProject의 라이브러리들이 다음과 같으니 확인하시고,
해결하신 분이 계신다면 답변좀 부탁드리겠습니다.
작성한 코드
package com.tpc.second.ddd;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import kr.bit.structure.ExcelVO;
public class TPCProject16 {
public static void main(String[] args) {
// String filePath = "/kr/bit/file/bookList.xlsx";
// String filePath = "bookList.xlsx";
String filePath = "C:/JavaTPC/newWorkspace/JavaTPCProject/src/kr/bit/file/bookList.xlsx";
List<ExcelVO> bookList = new ArrayList<ExcelVO>();
System.out.println("try 진입 전 1111111111");
// try (FileInputStream fis = new FileInputStream(filePath)) {
// try (POIFSFileSystem fis = new POIFSFileSystem(new FileInputStream(filePath))) {
// try(OPCPackage fis = OPCPackage.open(new File(filePath));) {
try (FileInputStream fis = new FileInputStream(new File(filePath))) {
System.out.println("try 진입 1111111111");
// HSSFWorkbook workbook = new HSSFWorkbook(fis);
XSSFWorkbook workbook = new XSSFWorkbook(fis);
System.out.println("try 진입 222222222");
// opcPackage.close();
// HSSFSheet sheet = workbook.getSheetAt(0);
XSSFSheet sheet = workbook.getSheetAt(0);
Iterator rows = sheet.rowIterator();
String[] excelColumn = new String[5];
rows.next();
while(rows.hasNext()) {
// HSSFRow row = (HSSFRow) rows.next();
XSSFRow row = (XSSFRow) rows.next();
Iterator cells = row.cellIterator();
int i = 0;
while(cells.hasNext()) {
// HSSFCell cell = (HSSFCell) cells.next();
XSSFCell cell = (XSSFCell) cells.next();
excelColumn[i] = cell.toString();
i++;
} // while
ExcelVO vo = new ExcelVO(excelColumn[0] , excelColumn[1] , excelColumn[2] , excelColumn[3] , excelColumn[4]);
bookList.add(vo);
} // while
} catch (Exception e) {
e.printStackTrace();
}
showExcelData(bookList);
}
private static void showExcelData(List<ExcelVO> dataList) {
for(ExcelVO dataElement : dataList) {
System.out.println(dataElement);
}
}
}
현재 라이브러리들
감사합니다.
즐거운 강의 되세요.
답변 1
0
사실 첫번째 사진의 빨간 5줄의 에러가 떠도 *.xlsx를 읽어오거나 수정, 생성하는데는 문제가 없습니다.
다만, 개발자 입장에서는 마음 한 구석이 편하지 않는 그런 사항이 있죠.
일단 떠도 실행하는데는 상관없으니깐 신경 안쓰셔도 될 문제이긴 합니다.