Java로 Excel 파일을 TXT 텍스트 파일로 변환하는 방법

Pilalo Jovanitho·2026년 8월 12일

텍스트(TXT) 파일은 구조가 단순하고 호환성이 높아 데이터 교환, 로그 기록, 시스템 간 연동 등 다양한 분야에서 널리 사용됩니다. 반면 Excel 파일은 풍부한 서식과 계산 기능을 제공하지만, 특정 소프트웨어에 종속적일 수 있습니다. 따라서 데이터를 더 보편적인 형식으로 내보내거나 다른 시스템에서 읽기 쉽도록 Excel 파일을 TXT 파일로 변환해야 하는 경우가 자주 발생합니다.

이 글에서는 Java용 Spire.XLS for Java 라이브러리를 사용하여 Excel 워크시트를 텍스트 파일로 변환하는 간단하고 효율적인 방법을 소개합니다.

1. 라이브러리 설치

프로젝트에서 사용할 라이브러리를 의존성에 추가합니다. Maven을 사용하는 경우 pom.xml 파일에 아래 리포지토리와 의존성을 포함시킵니다 .

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.xls</artifactId>
        <version>16.7.3</version>
    </dependency>
</dependencies>

Maven을 사용하지 않는다면, JAR 파일을 직접 내려받아 프로젝트의 빌드 경로에 추가하는 방식으로도 사용할 수 있습니다 .

2. Excel을 TXT로 변환하는 기본 코드

이 라이브러리는 Worksheet.saveToFile() 메서드를 제공하여 별도의 셀 순회 없이 워크시트 전체를 TXT 파일로 직접 저장할 수 있습니다 . 변환 과정은 다음 세 단계로 매우 간결합니다.

  1. Workbook 객체를 생성하고 Excel 파일을 로드합니다.
  2. 변환할 Worksheet 객체를 가져옵니다.
  3. saveToFile() 메서드를 호출하여 TXT 파일로 저장합니다. 이때 열 구분자와 문자 인코딩을 지정할 수 있습니다.

예제 코드:

import com.spire.xls.*;
import java.nio.charset.Charset;

public class ExcelToTxt {
    public static void main(String[] args) {
        // Workbook 객체 생성 및 Excel 파일 로드
        Workbook workbook = new Workbook();
        workbook.loadFromFile("sample.xlsx");

        // 첫 번째 워크시트 가져오기
        Worksheet worksheet = workbook.getWorksheets().get(0);

        // TXT 파일로 저장 (열 구분자: 공백, 인코딩: UTF-8)
        Charset charset = Charset.forName("UTF-8");
        worksheet.saveToFile("ExcelToTxt.txt", " ", charset);

        System.out.println("Excel 파일이 TXT로 변환되었습니다.");
    }
}

3. 코드 상세 설명 및 활용 팁

위 예제는 가장 기본적인 변환을 보여줍니다. 실제 사용 시에는 몇 가지 옵션을 추가로 고려할 수 있습니다.

  • 열 구분자(Column Separator) 지정: saveToFile() 메서드의 두 번째 파라미터로 열 구분자를 지정할 수 있습니다. 예제에서는 공백(" ")을 사용했지만, 탭 문자("\t")나 쉼표(",") 등 데이터 성격에 맞는 구분자를 선택하면 됩니다 .
  • 문자 인코딩(Encoding) 설정: 세 번째 파라미터로 문자 인코딩을 지정합니다. 한글이 포함된 데이터라면 예제처럼 UTF-8을 사용하는 것이 좋으며, Charset.forName("EUC-KR")과 같이 다른 인코딩도 가능합니다 .
  • 특정 워크시트 선택: workbook.getWorksheets().get(인덱스) 메서드에서 인덱스를 변경하여 첫 번째 워크시트뿐만 아니라 원하는 특정 워크시트를 변환할 수 있습니다 . 전체 워크북의 모든 시트를 변환하려면 반복문을 사용하면 됩니다.
  • 성능 및 데이터 정합성: 이 방식은 내부적으로 최적화되어 있어, 대용량 Excel 파일도 비교적 효율적으로 처리할 수 있습니다. 다만, TXT 파일은 서식을 저장하지 않으므로, Excel의 굵은 글씨, 색상, 수식 등은 결과에 포함되지 않습니다. 순수한 데이터 값만 추출된다는 점을 기억해야 합니다 .

4. 다른 접근 방식과의 비교

Java에서 Excel을 TXT로 변환하는 방법은 다양합니다.

  • Apache POI: 대표적인 오픈소스 라이브러리입니다. XSSFWorkbook 등을 사용하여 각 셀을 순회하며 데이터를 읽고, 직접 StringBuilder 등에 추가하여 TXT 파일을 생성해야 합니다. 더 많은 코드가 필요하지만, 세부적인 제어가 가능합니다 .
  • JDBC-ODBC 드라이버: Excel 파일을 데이터베이스처럼 연결하여 SQL로 데이터를 추출할 수 있지만, 설정이 복잡하고 성능이 떨어질 수 있습니다 .

이 글에서 소개한 방식은 별도의 셀 순회 없이 메서드 하나로 변환을 완료하므로, 단순하고 빠른 변환 작업에 특히 효율적입니다.

결론

이 글에서는 Java용 Spire.XLS for Java 라이브러리를 사용하여 Excel 파일을 TXT 텍스트 파일로 변환하는 간단한 방법을 코드 예제와 함께 살펴보았습니다. Worksheet.saveToFile() 메서드 하나로 구분자와 인코딩까지 지정할 수 있어, 복잡한 로직 없이도 빠르게 변환 작업을 수행할 수 있습니다. 이는 데이터를 다른 시스템으로 내보내거나, 로그 형태로 저장하거나, 단순 텍스트 분석이 필요한 상황에서 유용한 도구가 될 수 있습니다. 다만 상용 라이선스 정책과 무료 버전의 제약 사항을 프로젝트 환경에 맞게 검토하고, 필요에 따라 Apache POI와 같은 오픈소스 대안과의 비교를 통해 가장 적합한 방법을 선택할 것을 권장합니다 .

0개의 댓글