Java에서 Excel 파일 읽기
이 글은 자바 프로그램에서 엑셀 파일을 읽기 위해 필요한 정보를 교육한다. 어떤 소프트웨어를 사용할 것인가? 따라야 할 단계와 마지막으로 중요한 것은 사용자가 Excel 파일을 읽을 수 있도록 라이브러리를 적용하는 방법입니다. 그럼 시작하겠습니다.
Java에서 Excel 파일 읽기
Java에서 Excel 파일을 읽는 것은 Microsoft Word와 같은 다른 파일 형식처럼 쉽지 않습니다. 그러나 Excel 시트에는 셀이 포함되어 있으므로 그 이유를 쉽게 이해할 수 있습니다.
JDK(Java Development Kit
)는 사용자가 Microsoft Excel 및 Microsoft Word와 같은 파일을 처리하도록 허용하지 않습니다. 또한 사용자에게 필요한 API를 제공하지 않으므로 작업을 수행하기 위해 타사 라이브러리에 의존할 수밖에 없습니다.
Java에서 엑셀 파일을 읽으려면 .xls
및 .xlsx
형식 모두에서 작동할 수 있는 APACHE POI
라이브러리에 대해 배워야 합니다.
APACHE POI
라이브러리 개요
Poor Obfuscation Implementation으로도 알려진 APACHE POI
라이브러리는 사용자에게 두 가지 구현을 제공합니다. 하나는 HSSF
이고 다른 하나는 XSSF
입니다.
HSSF
-HSSF
, 끔찍한 스프레드 시트 형식, 구현은 이전 버전의 Microsoft Excel, 특히 Excel 2003 및 이전 버전에서 작동하는 API를 사용하는 사용자를 나타냅니다.XSSF
-XSSF
, XML 스프레드 시트 형식, 구현은 이후 버전의 Microsoft Excel에서 작동하는 API를 사용하는 사용자를 나타냅니다. 이 경우 Excel 2007+ 버전용입니다. 이 구현을 사용하여.xlsx
형식으로 작업할 수도 있습니다.
작업을 더 자세히 이해하기 위해 인터페이스와 클래스를 살펴보겠습니다.
인터페이스와 클래스
아래에 언급된 모든 인터페이스는 HSSF
및 XSSF
모두에서 작동합니다.
-
workbook
-workbook
은 Excel Workbook을 나타내는 인터페이스입니다. 여기에는HSSFWorkbook
및XSSFWorkbook
의 두 클래스가 있습니다. -
시트
- 아시다시피 통합 문서의 중심 구조는 워크시트로 알려져 있습니다. 따라서시트
는 Excel 워크시트를 나타내는 인터페이스입니다.라이브러리
java.lang.Iterable
의 확장입니다. 이 인터페이스의 두 클래스는HSSFSheet
및XSSFSheet
입니다. -
행
- Excel 시트의행
을 나타내는 인터페이스입니다. 이 인터페이스는java.lang.Iterable
라이브러리의 확장이기도 합니다.HSSFRow
및XSSFRow
의 두 클래스가 있습니다. -
cell
- Excel 시트의행
에 있는 셀을 나타내는 인터페이스입니다. 또한HSSFCell
및XSSFCell
이라는 두 개의 클래스가 있습니다.
이제 APACHE POI
라이브러리에 포함된 내용과 사용할 수 있는 인터페이스 및 클래스를 알았으므로 Excel 파일을 읽는 단계를 살펴보겠습니다.
Java에서 Excel 파일을 읽는 단계
이 단계는 따라하기 쉽습니다.
-
lib
폴더 생성사용자가 Excel 파일을 열고 읽는 데 사용할 Java 프로젝트에
lib
라는 폴더를 만듭니다. -
jar
파일 다운로드이 단계에서는 사용자가 이전 단계에서 만든
lib
폴더에 일부jar
파일을 다운로드해야 합니다.commons-collections4-4.1.jar
,poi-3.17.jar
,poi-ooxml-3.17.jar
,poi-ooxml-schemas-3.17.jar
를 다운로드해야 합니다. 및xmlbeans-2.6.0.jar
-
jar
파일을 추가할 경로 생성이 단계에서는 이전 단계에서 다운로드한
jar
파일을 추가하기 위해경로
를 생성해야 합니다. 이를 위해 1단계에서 생성한 Java 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다.그런 다음
build path
옵션을 클릭하여jar
파일에 대한path
를 빌드합니다. 마지막으로 외부 ‘jar’ 파일을 추가한 후적용 후 닫기
를 클릭합니다. -
자바 클래스 만들기
이 단계에서 Java 클래스 파일을 만든 다음 원하는 Excel 파일을 호출하여 데이터를 읽을 수 있습니다. 다음은 Excel 파일을 읽는 클래스 파일의 예입니다.
이 예에서는 Excel 2007+ 버전을 사용하므로
XSSF
가 사용됩니다.import java.io.File; import java.io.FileInputStream; import java.util.Iterator; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class Example { public static void main(String[] args) { try { File ExcelFile = new File("D:\\your_filename.xlsx"); // obtaining bytes from the file FileInputStream FileStream = new FileInputStream(ExcelFile); // using the Workbook interface XSSFWorkbook ExcelWorkbook = new XSSFWorkbook(FileStream); // using the sheet class to get the object XSSFSheet ExcelSheet = ExcelWorkbook.getSheetAt(0); // iterating over excel file, rows. Iterator<Row> IterateRows = ExcelSheet.iterator(); while (IterateRows.hasNext()) { Row ExcelRow = IterateRows.next(); // iterating over the column Iterator<Cell> IterateCells = ExcelRow.cellIterator(); while (IterateCells.hasNext()) { Cell ExcelCell = IterateCells.next(); switch (ExcelCell.getCellType()) { case Cell.CELL_TYPE_STRING: // represents string cell type System.out.print(ExcelCell.getStringCellValue() + "\t"); break; case Cell.CELL_TYPE_NUMERIC: // represents number cell type System.out.print(ExcelCell.getNumericCellValue() + "\t"); break; default: } } System.out.println(""); } } catch (Exception exp) { exp.printStackTrace(); } } }
이 예제 코드를 사용하면 APACHE POI
라이브러리를 사용하는 방법을 쉽게 이해할 수 있습니다. 이 예제 코드의 출력은 사용자가 제공할 Excel 파일 데이터입니다.
Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.
LinkedIn