강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của lwmwpark35235376
lwmwpark35235376

câu hỏi đã được viết

Dự án thực hành Java TPC (sử dụng API Java)

엑셀 bookList 불러오는 예제 질문

Viết

·

270

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);
		}
	}
}

현재 라이브러리들

감사합니다.

즐거운 강의 되세요.

javaoop

Câu trả lời 1

0

lwmwpark3523님의 프로필 이미지
lwmwpark3523
Người đặt câu hỏi

사실 첫번째 사진의 빨간 5줄의 에러가 떠도 *.xlsx를 읽어오거나 수정, 생성하는데는 문제가 없습니다.

다만, 개발자 입장에서는 마음 한 구석이 편하지 않는 그런 사항이 있죠.

일단 떠도 실행하는데는 상관없으니깐 신경 안쓰셔도 될 문제이긴 합니다.

Hình ảnh hồ sơ của lwmwpark35235376
lwmwpark35235376

câu hỏi đã được viết

Đặt câu hỏi