일반 텍스트 데이터를 구조화된 Excel 워크북으로 변환하는 것은 정보를 분석하거나 공유해야 하는 Java 개발자에게 흔한 작업입니다. Conholdate.Total for Java는 강력한 SDK로, Java 워크플로우에서 TXT를 XLSX로 변환하는 과정을 단순화합니다. 이 가이드에서는 라이브러리를 설정하는 방법, 각 코딩 단계를 살펴보는 방법, 변환 옵션을 탐색하는 방법, 그리고 대용량 파일을 효율적으로 처리하기 위한 성능 팁을 적용하는 방법을 배웁니다.

시작하기 전에: 전제 조건 및 설치

이 튜토리얼을 따라하려면 다음이 필요합니다:

  • Java Development Kit 8 이상
  • IntelliJ IDEA 또는 Eclipse와 같은 IDE
  • 종속성 관리를 위한 Maven
  • SDK 아티팩트를 다운로드하기 위한 인터넷 액세스

Conholdate Maven 저장소와 SDK 종속성을 pom.xml에 추가하세요:

<repositories>
  <repository>
    <id>conholdate-repo</id>
    <name>Conholdate Maven Repository</name>
    <url>https://repository.conholdate.com/repo/</url>
  </repository>
</repositories>

<dependency>
  <groupId>com.conholdate</groupId>
  <artifactId>conholdate-total</artifactId>
  <version>24.9</version>
  <type>pom</type>
</dependency>

공식 페이지에서 최신 SDK 패키지를 다운로드하십시오: Download Conholdate.Total for Java. 종속성이 해결되면 코딩을 시작할 준비가 됩니다. 다음 섹션에서는 구현 과정을 단계별로 안내합니다.

단계별 구축: Java에서 TXT를 XLSX로 변환

1단계: 입력 파일이 존재하는지 확인

먼저, 소스 TXT 파일이 존재하는지 확인하십시오. 코드는 파일 경로를 확인하고 파일을 찾을 수 없으면 중단합니다.

String inputPath = "sample.txt";
File inputFile = new File(inputPath);
if (!inputFile.exists() || !inputFile.isFile()) {
    System.err.println("Input file not found: " + inputPath);
    return;
}

2단계: 변환 옵션 설정

SDK가 TXT 데이터를 해석하는 방식을 구성합니다. 구분자(탭, 쉼표, 세미콜론 등)를 설정하고, 원본 형식을 유지하며, 대용량 파일에 대해 메모리 캐싱을 활성화할 수 있습니다.

XlsxConvertOptions options = new XlsxConvertOptions();
options.setDelimiter('\t');               // Tab‑delimited example
options.setPreserveOriginalFormatting(true);
options.setEnableMemoryCache(true);

자세한 내용은 XlsxConvertOptions API 참조를 확인하십시오.

3단계: 변환 실행

입력 파일로 Conversion 인스턴스를 생성하고 convert를 호출하여 XLSX 출력을 생성합니다.

String outputPath = "sample.xlsx";
try (Conversion conversion = new Conversion(inputFile)) {
    conversion.convert(outputPath, options);
} catch (ConversionException | IOException e) {
    System.err.println("Conversion failed: " + e.getMessage());
    e.printStackTrace();
    return;
}

Conversion 클래스는 백그라운드에서 무거운 작업을 처리하여 TXT 파일의 각 줄을 스프레드시트의 행과 열로 변환합니다.

4단계: 출력 파일 확인 및 결과 로그 기록

변환 후, XLSX 파일이 생성되었으며 비어 있지 않은지 확인하십시오.

File outputFile = new File(outputPath);
if (outputFile.exists() && outputFile.isFile() && outputFile.length() > 0) {
    System.out.println("Conversion succeeded. Output file: " + outputPath);
} else {
    System.err.println("Conversion completed but output file is missing or empty.");
}

5단계: Apache POI를 사용한 빠른 검증

옵션으로, Apache POI를 사용하여 생성된 워크북을 읽고 시트 및 행 수를 확인합니다.

try (XSSFWorkbook workbook = new XSSFWorkbook(Files.newInputStream(Paths.get(outputPath)))) {
    int sheetCount = workbook.getNumberOfSheets();
    System.out.println("Workbook contains " + sheetCount + " sheet(s).");
    if (sheetCount > 0) {
        Sheet sheet = workbook.getSheetAt(0);
        int rowCount = sheet.getPhysicalNumberOfRows();
        System.out.println("First sheet row count: " + rowCount);
    }
} catch (IOException ex) {
    System.err.println("Failed to read generated XLSX for validation: " + ex.getMessage());
}

변환이 완료되면 이제 추가 구성 옵션을 탐색하거나 프로세스를 확장하여 여러 파일을 일괄 변환할 수 있습니다.

Java에서 TXT를 XLSX로 변환하는 전체 작업 예제

다음 코드는 Conholdate.Total for Java를 사용하여 Java 워크플로에서 TXT를 XLSX로 변환하는 전체 구현을 보여줍니다.

import com.groupdocs.conversion.Conversion;
import com.groupdocs.conversion.options.convert.XlsxConvertOptions;
import com.groupdocs.conversion.exceptions.ConversionException;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.Sheet;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class TxtToXlsxConverter {
    public static void main(String[] args) {
        // Input TXT file and desired XLSX output paths
        String inputPath = "sample.txt";
        String outputPath = "sample.xlsx";

// Verify that the input file exists
        File inputFile = new File(inputPath);
        if (!inputFile.exists() || !inputFile.isFile()) {
            System.err.println("Input file not found: " + inputPath);
            return;
        }

// Configure conversion options
        XxlsxConvertOptions options = new XlsxConvertOptions();
        // Set delimiter (tab, comma, semicolon, etc.). Here we use tab.
        options.setDelimiter('\t');
        // Preserve original formatting where possible
        options.setPreserveOriginalFormatting(true);
        // Enable memory cache to improve performance on large files
        options.setEnableMemoryCache(true);

// Perform the conversion
        try (Conversion conversion = new Conversion(inputFile)) {
            conversion.convert(outputPath, options);
        } catch (ConversionException | IOException e) {
            System.err.println("Conversion failed: " + e.getMessage());
            e.printStackTrace();
            return;
        }

// Validate that the XLSX file was created and is not empty
        File outputFile = new File(outputPath);
        if (outputFile.exists() && outputFile.isFile() && outputFile.length() > 0) {
            System.out.println("Conversion succeeded. Output file: " + outputPath);

// Optional quick validation using Apache POI
            try (XSSFWorkbook workbook = new XSSFWorkbook(Files.newInputStream(Paths.get(outputPath)))) {
                int sheetCount = workbook.getNumberOfSheets();
                System.out.println("Workbook contains " + sheetCount + " sheet(s).");
                if (sheetCount > 0) {
                    Sheet sheet = workbook.getSheetAt(0);
                    int rowCount = sheet.getPhysicalNumberOfRows();
                    System.out.println("First sheet row count: " + rowCount);
                }
            } catch (IOException ex) {
                System.err.println("Failed to read generated XLSX for validation: " + ex.getMessage());
            }
        } else {
            System.err.println("Conversion completed but output file is missing or empty.");
        }
    }
}

Note: 이 코드 예제는 핵심 기능을 보여줍니다. 프로젝트에 사용하기 전에 파일 경로와 구성 값을 실제 환경에 맞게 업데이트하고, 모든 필수 종속성이 올바르게 설치되었는지 확인하며, 개발 환경에서 충분히 테스트하십시오. 문제가 발생하면 공식 문서를 참조하거나 지원 팀에 문의하십시오.

변환 옵션 구성

SDK는 변환 프로세스를 미세 조정할 수 있는 여러 옵션을 제공합니다:

  • Delimiter - SDK가 TXT 파일의 각 행을 열로 나누는 방식을 결정합니다. 예제에서는 탭 문자('\t')를 사용합니다. 이를 쉼표(',') 또는 원본 데이터에 맞는 다른 문자로 변경할 수 있습니다.
  • PreserveOriginalFormatting - true로 설정하면 SDK가 결과 XLSX 셀에서 원본 텍스트 서식(예: 굵게 또는 기울임)을 유지하려고 시도합니다.
  • EnableMemoryCache - 이 플래그를 활성화하면 메모리에 중간 데이터를 캐시하여 대용량 파일의 성능을 향상시킵니다.

이러한 옵션은 위 단계별 섹션에 표시된 대로 XlsxConvertOptions 객체를 통해 구성됩니다.

변환 성능 최적화

대용량 TXT 파일을 변환할 때는 다음 팁을 고려하십시오:

  1. 메모리 캐시 활성화 - options.setEnableMemoryCache(true);는 디스크 I/O를 줄이고 처리 속도를 높입니다.
  2. 입력 스트리밍 - SDK는 소스 파일을 스트리밍 방식으로 읽지만, 변환 전에 전체 파일을 String으로 로드하지 않도록 합니다.
  3. 변환 인스턴스 재사용 - 많은 파일을 변환해야 하는 경우, 스레드당 하나의 Conversion 객체를 생성하고 각 파일에 재사용하여 객체 생성 오버헤드를 최소화합니다.
  4. JVM 힙 조정 - 매우 큰 데이터 세트의 경우, JVM 힙 크기(-Xmx2g 이상)를 늘려 OutOfMemoryError를 방지합니다.

이러한 관행을 적용하면 Java에서 TXT를 XLSX로 변환하는 작업이 대용량(기가바이트 규모) 소스 파일에서도 빠르고 메모리 효율적으로 유지됩니다.

마무리

이제 Java에서 Conholdate.Total for Java을 사용하여 TXT를 XLSX로 변환하는 방법을 보았습니다. SDK는 구분자 구문 분석, 서식 보존 및 메모리 관리를 처리하여 Microsoft Office에 의존하지 않고도 전문적인 Excel 워크북을 생성할 수 있게 해줍니다. 실제 배포 시에는 적절한 라이선스를 획득해야 하며, 가격 페이지에서 가격 세부 정보를 확인하고, 임시 라이선스 페이지에서 테스트용 임시 라이선스를 얻을 수 있습니다. 이 가이드의 코드와 팁을 활용하면 TXT‑to‑XLSX 변환을 모든 Java 애플리케이션에 통합하고, 배치 처리를 자동화하며, 최종 사용자가 쉽게 조작할 수 있는 형식으로 데이터를 제공할 수 있습니다.

FAQs

Java SDK를 사용하여 TXT를 XLSX로 변환하려면 어떻게 해야 하나요?

Conversion 클래스와 XlsxConvertOptions를 함께 사용합니다. 원하는 구분자를 설정하고, 메모리 캐시를 활성화한 다음 conversion.convert(outputPath, options)를 호출합니다. 전체 예제는 “전체 작업 예제” 섹션에 제공됩니다.

사용자 정의 파싱 코드를 작성하지 않고 구분된 TXT 파일을 XLSX로 변환할 수 있나요?

예. SDK의 XlsxConvertOptions.setDelimiter 메서드를 사용하면 구분자(쉼표, 탭, 세미콜론 등)를 지정할 수 있으므로 Java에서 단일 API 호출로 구분된 TXT를 XLSX로 변환할 수 있습니다.

단일 TXT 소스에서 다중 시트 워크북을 만들 수 있나요?

기본 예제는 하나의 시트를 생성하지만, 입력 데이터를 프로그래밍 방식으로 분할하고 각 세그먼트에 대해 별도의 변환을 호출한 다음, Apache POI 또는 SDK의 고급 기능을 사용하여 결과 시트를 다중 시트 XLSX 워크북으로 결합할 수 있습니다.

더 읽기