Java로 HTML 파일을 Excel 스프레드시트로 변환하는 방법

Pilalo Jovanitho·2026년 8월 13일

웹 페이지는 데이터 공유에 매우 편리한 플랫폼이지만, 웹상의 표 형식 데이터를 분석하거나 가공해야 할 때는 Excel과 같은 스프레드시트 형식이 더 효율적일 수 있습니다. HTML 파일에서 데이터를 수동으로 복사하여 붙여넣는 대신, 프로그래매틱 방식으로 변환하면 시간을 절약하고 오류를 줄일 수 있습니다.

이 글에서는 Java용 Spire.XLS for Java 라이브러리를 사용하여 HTML 파일을 Excel 스프레드시트로 변환하는 방법을 소개합니다. 또한 동적으로 생성된 HTML 문자열을 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. HTML 파일을 Excel로 변환하기

Workbook 클래스는 loadFromHtml() 메서드를 제공하여 HTML 파일을 직접 로드하고, 이를 Excel 형식으로 저장할 수 있게 합니다 . 라이브러리는 HTML 내의 <table> 태그를 인식하여 표 형식의 데이터를 Excel 워크시트에 매핑합니다 .

주요 단계:
1. Workbook 객체를 생성합니다.
2. loadFromHtml() 메서드로 변환할 HTML 파일을 로드합니다.
3. saveToFile() 메서드를 호출하여 Excel 파일(.xlsx)로 저장합니다.

예제 코드:

import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;

public class ConvertHtmlToExcel {
    public static void main(String[] args) {
        // Workbook 인스턴스 생성
        Workbook workbook = new Workbook();

        // HTML 파일 로드
        workbook.loadFromHtml("sample.html");

        // Excel XLSX 파일로 저장
        workbook.saveToFile("HtmlToExcel.xlsx", ExcelVersion.Version2013);

        workbook.dispose();
    }
}

참고사항: HTML 파일에 여러 개의 <table>이 있는 경우, 각 테이블은 다른 워크시트로 변환될 수 있습니다. 변환의 정확도를 높이려면 HTML 내에서 변환하고자 하는 데이터가 명확한 <table> 구조로 정의되어 있어야 합니다 .

3. HTML 문자열을 Excel 셀에 직접 삽입하기

파일이 아닌 메모리상의 HTML 문자열을 Excel로 변환해야 하는 경우도 있습니다. 이때는 CellRange.setHtmlString() 메서드를 사용하여 특정 셀에 서식이 포함된 HTML 콘텐츠를 직접 삽입할 수 있습니다 .

주요 단계:
1. Workbook 객체를 생성하고, 필요하다면 기존 Excel 파일을 로드합니다.
2. getWorksheets().get() 메서드로 원하는 워크시트를 가져옵니다.
3. getCellRange() 메서드로 삽입할 셀 위치를 지정합니다.
4. setHtmlString() 메서드로 HTML 문자열을 셀에 설정합니다.
5. saveToFile() 메서드로 결과를 저장합니다.

예제 코드:

import com.spire.xls.CellRange;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

public class InsertHtmlStringToExcel {
    public static void main(String[] args) {
        // Workbook 인스턴스 생성
        Workbook workbook = new Workbook();
        workbook.loadFromFile("sample.xlsx"); // 기존 파일이 없다면 생략 가능

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

        // 삽입할 HTML 문자열
        String htmlCode = "<p><font size='12'>이것은 <b>굵은 텍스트</b>와 <span style='color: red;'>빨간색 텍스트</span>를 포함한 단락입니다.</font></p>";

        // A1 셀에 HTML 문자열 삽입
        CellRange range = sheet.getCellRange("A1");
        range.setHtmlString(htmlCode);

        // 열 너비 자동 조정
        sheet.autoFitColumn(1);

        // 결과 저장
        workbook.saveToFile("InsertHtmlString.xlsx");
        workbook.dispose();
    }
}

4. 고려 사항 및 대안

  • 라이선스: 이 라이브러리는 상용 제품입니다. 무료 버전(Free Spire.XLS for Java)도 제공되지만, 파일 변환 시 워터마크 추가나 문서 수 제한 등의 기능 제한이 있을 수 있습니다.
  • Apache POI: 오픈소스 대안으로 Apache POI를 고려할 수 있습니다. POI는 Excel 파일 생성 및 조작에 강력하지만, HTML을 직접 Excel로 변환하는 기능은 기본적으로 제공하지 않아 별도의 HTML 파싱 로직이 필요합니다. 반면, loadFromHtml() 메서드를 제공하는 라이브러리는 HTML 구조를 직접 처리하여 변환 과정을 단순화합니다.

결론

이 글에서는 Java용 Spire.XLS for Java 라이브러리를 사용하여 HTML 파일을 Excel 스프레드시트로 변환하고, HTML 문자열을 Excel 셀에 삽입하는 두 가지 방법을 코드 예제와 함께 살펴보았습니다. Workbook.loadFromHtml() 메서드는 HTML 파일 내의 표 데이터를 Excel로 신속하게 변환해야 할 때, CellRange.setHtmlString()은 동적으로 생성된 서식 있는 텍스트를 Excel에 추가해야 할 때 유용하게 사용될 수 있습니다. 프로젝트의 라이선스 정책과 필요 기능에 따라 상용 라이브러리와 Apache POI와 같은 오픈소스 대안을 비교하여 적합한 도구를 선택할 것을 권장합니다.

0개의 댓글