Java로 Excel 파일을 HTML 문서로 변환하는 방법

Pilalo Jovanitho·2026년 8월 3일

웹 환경에서 데이터를 공유하거나 보고서를 배포할 때 Excel 파일을 HTML 형식으로 변환하면 매우 유용합니다. HTML은 별도의 뷰어 없이 모든 웹 브라우저에서 열람 가능하며, 복잡한 표와 차트, 서식까지 비교적 정확하게 표현할 수 있습니다. 이번 글에서는 Java 환경에서 Excel 파일을 HTML로 변환하는 구체적인 방법을 코드 예제와 함께 살펴보겠습니다.

1. HTML 변환의 활용성

Excel을 HTML로 변환하는 것은 단순히 데이터를 웹에 표시하는 것을 넘어 다양한 장점을 제공합니다. 웹 페이지에 직접 삽입하거나 이메일 본문에 포함시킬 수 있으며, 반응형 디자인을 적용하기 쉽고, 검색 엔진을 통해 내용을 찾을 수 있게 합니다. 특히, Excel의 복잡한 차트, 피벗 테이블, 조건부 서식 등을 웹 환경에서도 유사하게 재현할 수 있어, 데이터 포털 구축이나 내부 보고서 공유 시 자주 활용됩니다.

2. 개발 환경 구성하기

이번 예제에서는 Excel 파일 처리를 위해 Java 기반의 라이브러리를 사용합니다. 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 파일을 내려받아 프로젝트의 빌드 경로에 추가하는 방식으로도 사용할 수 있습니다.

3. 전체 Excel 문서를 HTML로 변환하기

Excel 통합 문서 전체를 하나의 HTML 파일로 변환하는 기본적인 방법은 다음과 같습니다.

import com.spire.xls.FileFormat;
import com.spire.xls.Workbook;

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

        // 파일을 HTML 형식으로 저장
        workbook.saveToFile("output.html", FileFormat.HTML);
    }
}

이 코드는 Excel 파일에 포함된 모든 시트의 내용을 하나의 HTML 파일로 변환하며, 시트 간 이동이 가능한 탭 형태로 구성됩니다.

4. 특정 시트만 HTML로 변환하고 이미지 포함하기

통합 문서 중 특정 시트 하나만 변환해야 하거나, Excel 파일에 포함된 이미지를 HTML에 함께 포함시켜야 할 수 있습니다. 이때는 Worksheet 객체와 HTMLOptions를 활용합니다.

import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import com.spire.xls.core.spreadsheet.HTMLOptions;

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

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

        // HTML 옵션 객체 생성 및 이미지 포함 설정
        HTMLOptions options = new HTMLOptions();
        options.setImageEmbedded(true); // 이미지를 HTML에 Base64로 포함

        // 워크시트를 HTML로 저장
        sheet.saveToHtml("sheet_output.html", options);
    }
}

setImageEmbedded(true)를 설정하면 이미지가 별도 파일로 저장되지 않고 HTML 파일 내에 포함되어, 파일 하나로 모든 내용을 전달할 수 있습니다.

5. HTML 변환 시 세부 옵션 활용하기

HTML 변환 시 세부 옵션을 통해 출력 결과를 더욱 정교하게 제어할 수 있습니다.

  • 주석 유지: Excel 파일에 포함된 셀 주석을 HTML 변환 시 함께 보존할 수 있습니다.
HTMLOptions options = new HTMLOptions();
options.isSaveComment(true); // 주석 유지
  • 틀 고정 유지: 워크시트의 틀 고정(freeze panes) 설정을 HTML에서도 유지할지 여부를 선택할 수 있습니다.
// HTMLOptions.Default.isSaveFreezedPanes(true); // 전체 워크북에 적용

이를 통해 원본 Excel의 레이아웃을 HTML에서도 더 정확하게 재현할 수 있습니다.

6. 특정 셀 범위를 HTML 문자열로 추출하기

전체 시트가 아닌 특정 셀 범위의 내용을 HTML 형식의 문자열로만 추출해야 할 수도 있습니다. 이 경우 CellRange.getHtmlString() 메서드를 활용할 수 있습니다.

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

public class CellRangeToHtmlString {
    public static void main(String[] args) {
        Workbook workbook = new Workbook();
        workbook.loadFromFile("sample.xlsx");

        Worksheet sheet = workbook.getWorksheets().get(0);
        // A1부터 B3까지의 범위 지정
        CellRange range = sheet.getRange().get("A1:B3");
        
        // 해당 범위의 HTML 문자열 획득
        String htmlString = range.getHtmlString();
        System.out.println(htmlString);
    }
}

이 방법은 데이터의 일부만 웹에 표시하거나, 동적인 웹 페이지 생성 시 유용하게 사용될 수 있습니다.

마치며

지금까지 Java에서 Excel 파일을 HTML로 변환하는 기본적인 방법과 주요 옵션들을 살펴보았습니다. Workbook.saveToFile() 또는 Worksheet.saveToHtml() 메서드를 통해 간편하게 변환할 수 있으며, HTMLOptions를 통해 이미지 포함, 주석 유지 등 세부 사항을 조정할 수 있습니다. HTML 형식은 웹 접근성이 뛰어나고 다양한 환경에서 호환되므로, Excel 데이터를 웹에 공유하거나 문서화할 때 유용한 선택지가 될 것입니다.

0개의 댓글