[Day 9 | Java] Java에서 Excel 파일 다루기: JXL 라이브러리

y♡ding·2024년 10월 24일
0

데브코스 TIL

목록 보기
52/163

JXL(Java Excel API) 라이브러리는 자바에서 Microsoft Excel 파일(.xls)을 읽고 쓸 수 있는 라이브러리입니다. JSL은 Excel 97-2003 형식의 .xls 파일을 지원하며, 엑셀 파일에서 데이터를 읽어오거나 새로운 엑셀 파일을 생성하고 수정하는 기능을 제공합니다.

1. JXL 라이브러리의 특징

  • Excel 파일 읽기/쓰기 지원: .xls 형식의 파일에서 데이터를 읽어오거나 작성할 수 있음.
  • Excel 2003 이전 버전을 주로 지원: Excel 2007이상 .xlsx 파일은 지원하지 않음.
  • 다양한 데이터 타입: 텍스트, 숫자, 날짜 등을 처리 가능.
  • 서식 지원: 일부 셀 스타일 및 서식(글꼴, 크기 등) 지정 기능을 제공.

2. JXL 라이브러리 설정 방법

  1. 라이브러리 다운로드: JXL 라이브러리를 SourceForge에서 다운로드.
  2. 프로젝트에 라이브러리 추가: IntelliJ와 같은 IDE에서 Project Structure -> Libraries 메뉴를 통해 다운로드한 .jar 파일을 프로젝트에 추가.

3. 엑셀 파일 읽기 예제

package com.exam;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

import java.io.File;
import java.io.IOException;

public class ExcelEx02 {
    public static void main(String[] args) {
        Workbook workbook = null;

        try {
            // 엑셀 파일 열기
            workbook = Workbook.getWorkbook(new File("./jxlrwtest.xls"));

            // 첫 번째 시트 가져오기
            Sheet sheet = workbook.getSheet(0);
            System.out.println(sheet.getName());   // 시트 이름 출력
            
            // 시트에서 행(row)와 열(column)의 개수 확인
            System.out.println(sheet.getRows());   
            System.out.println(sheet.getColumns());

            // 첫 번째 셀의 데이터 읽기
            Cell cell = sheet.getCell(0, 0);
            System.out.println(cell.getContents());  // 셀 내용 출력

        } catch (IOException | BiffException e) {
            System.out.println("[에러] " + e.getMessage());
        } finally {
            if (workbook != null) {
                workbook.close();  // 워크북 닫기
            }
        }
    }
}

설명:

  1. Workbook 객체: Workbook.getWorkbook() 메서드를 사용해 엑셀 파일을 엽니다.
  2. Sheet 객체: 워크북에서 첫 번째 시트를 가져옵니다.
  3. Cell 객체: 시트에서 특정 셀의 데이터를 읽어올 수 있습니다.
  4. 행(row) 및 열(column): 시트에서 행과 열의 개수를 얻어 반복문으로 데이터를 처리할 수 있습니다.

4. 시트에서 여러 셀 읽기

코드 예시 (특정 행 읽기):

for (int i = 0; i < 11; i++) {
    Cell cell = sheet.getCell(i, 2);  // 2번째 행에서 각 열의 셀 가져오기
    System.out.println(cell.getContents());
}

전체 셀 읽기 (모든 행, 열 출력):

package com.exam;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

import java.io.File;
import java.io.IOException;

public class JXLReadExample {
    public static void main(String[] args) {
        try {
            File excelFile = new File("jxlrwtest.xls");
            Workbook workbook = Workbook.getWorkbook(excelFile);

            Sheet sheet = workbook.getSheet(0);
            int rows = sheet.getRows();
            int columns = sheet.getColumns();

            for (int i = 0; i < rows; i++) {
                for (int j = 0; j < columns; j++) {
                // 각 셀(Cell)의 데이터를 가져옴
                    Cell cell = sheet.getCell(j, i);
                    // 셀 데이터를 출력
                    System.out.print(cell.getContents() + "\t");
                }
                System.out.println(); // 한 줄 출력 후 개행
            }

            workbook.close();
        } catch (IOException | BiffException e) {
            e.printStackTrace();
        }
    }
}

설명:

  • getRows()getColumns(): 시트에서 행과 열의 개수를 확인한 후 반복문을 사용하여 모든 셀의 데이터를 읽을 수 있습니다.
  • sheet.getCell(j, i): 특정 행(i)과 열(j)의 셀 데이터를 읽어와 출력.

5. 정리

  • JXL 라이브러리.xls 파일 형식의 엑셀 데이터를 읽고 쓸 수 있는 라이브러리로, 기본적인 엑셀 작업을 처리할 수 있습니다.
  • Excel 97-2003 형식만을 지원하며, 최신 버전의 .xlsx 파일을 처리하려면 다른 라이브러리(예: Apache POI)를 사용해야 합니다.
  • 시트(Sheet), 셀(Cell)을 이용해 엑셀의 데이터를 쉽게 읽어오거나 출력할 수 있으며, 각 셀의 데이터를 반복문을 통해 처리할 수 있습니다.

0개의 댓글

관련 채용 정보