Java实现将Excel转为HTML的完整示例

 更新时间:2026年03月10日 08:18:20   作者:咕白m625  
在 Web 应用开发中,经常需要将 Excel 报表以网页形式展示,本文将介绍如何在 Java 中使用免费库 Free Spire.XLS for Java 将 Excel 文件转换为 HTML 格式,感兴趣的小伙伴可以了解下

引言

在 Web 应用开发中,经常需要将 Excel 报表以网页形式展示,便于在线预览或嵌入系统。本文将介绍如何在 Java 中使用免费库 Free Spire.XLS for Java 将 Excel 文件转换为 HTML 格式,包含整个工作簿转换、指定工作表转换、图片嵌入等实用场景。代码简洁,无需安装 Microsoft Office。

环境配置

添加依赖(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>

<dependency>
    <groupId>e-iceblue</groupId>
    <artifactId>spire.xls.free</artifactId>
    <version>16.3.1</version>
</dependency>

如果不使用 Maven,可手动下载 Jar 包导入项目。

基础转换:整个 Excel 工作簿转 HTML

该方案可将 Excel 文件(支持.xls/.xlsx)完整转换为 HTML,保留单元格样式、合并单元格、图片等基础格式:

代码

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

public class ExcelToHtml {
    public static void main(String[] args) {
        // 1. 加载 Excel 文档
        Workbook workbook = new Workbook();
        workbook.loadFromFile("sample.xlsx");

        // 2. 保存为 HTML
        workbook.saveToFile("output/whole_workbook.html", FileFormat.HTML);
        System.out.println("转换完成!");
    }
}

运行后,生成的 HTML 会保留 Excel 中的多个 Sheet,浏览器中可通过底部的标签页切换。

进阶:转换指定工作表并嵌入图片

有时只需要导出某个特定工作表(如“销售数据”),并且希望表格中的图片直接嵌入 HTML(而非外部链接),可使用 HTMLOptions 类进行配置。

代码

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

public class SheetToHtmlWithImage {
    public static void main(String[] args) {
        // 1. 加载 Excel
        Workbook workbook = new Workbook();
        workbook.loadFromFile("product.xlsx");

        // 2. 获取第一个工作表
        Worksheet sheet = workbook.getWorksheets().get(0);

        // 3. 设置 HTML 选项:图片嵌入
        HTMLOptions options = new HTMLOptions();
        options.setImageEmbedded(true); // true 表示将图片转为 base64 嵌入 HTML

        // 4. 保存指定工作表为 HTML
        sheet.saveToHtml("output/single_sheet.html", options);
        System.out.println("单个工作表转换成功,图片已嵌入。");
    }
}

通过 setImageEmbedded(true),图片数据直接写入 HTML,分享单个文件即可显示图片。

常见问题

1. 中文字体显示异常?

生成的 HTML 依赖浏览器解析字体。如果目标环境(如 Linux 服务器)缺少中文字体,可确保系统安装了常用字体(如 微软雅黑)。

2. 图片未显示?

确认 setImageEmbedded(true) 已设置。如果仍不显示,检查 Excel 中图片是否为嵌入对象(而非链接图片)。

3. 数据量过大导致 HTML 体积大?

可考虑先筛选所需数据,再转换;在导出整个工作表时无法直接限制范围,需预处理好 Excel 文件。

总结

本文通过几个典型示例,展示了如何利用 Java 实现 Excel 转 HTML。整个过程无需 Office 环境,代码简洁,易于集成到 Java 项目中。开发者可以根据实际需求调整选项,达到理想的输出效果。

注意:免费版有工作表数量限制,一般日常使用足够。

到此这篇关于Java实现将Excel转为HTML的完整示例的文章就介绍到这了,更多相关Java Excel转HTML内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring Boot整合全局异常处理器、junit、多环境、logback的过程

    Spring Boot整合全局异常处理器、junit、多环境、logback的过程

    本文总结了SpringBoot的异常处理、单元测试、多环境配置及日志配置的最佳实践,重点介绍了前后端分离项目中的全局异常处理器,多环境配置文件的应用及激活方式,以及如何使用Logback进行日志记录,感兴趣的朋友跟随小编一起看看吧
    2026-04-04
  • java常用的加密解决方案分享

    java常用的加密解决方案分享

    这篇文章全面介绍了Java中加解密技术的应用,包括哈希函数、对称加密、非对称加密、消息认证码和数字签名等,它详细解释了每种技术的工作原理,并提供了相应的Java代码示例,文章还强调了密钥管理的重要性,并提出了在实际应用中遵循的最佳实践
    2025-01-01
  • spring定时器@Scheduled异步调用方式

    spring定时器@Scheduled异步调用方式

    在Spring Boot中,@Schedule默认使用单线程执行定时任务,多个定时器会按顺序执行,为实现异步执行,可以通过自定义线程池或实现SchedulingConfigurer接口,使用自定义线程池可以保证多个定时器并发执行
    2024-11-11
  • SpringBoot之RabbitMQ的使用方法

    SpringBoot之RabbitMQ的使用方法

    这篇文章主要介绍了SpringBoot之RabbitMQ的使用方法,详细的介绍了2种模式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • PowerJob的DispatchStrategy方法工作流程源码解读

    PowerJob的DispatchStrategy方法工作流程源码解读

    这篇文章主要为大家介绍了PowerJob的DispatchStrategy方法工作流程源码解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Spring @Order注解的使用小结

    Spring @Order注解的使用小结

    本文主要介绍了Spring @Order注解的使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • java中在多线程的情况下安全的修改list(常见解决方案)

    java中在多线程的情况下安全的修改list(常见解决方案)

    本文给大家介绍java中在多线程的情况下安全的修改list的常见解决方案及实现方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-09-09
  • drools中使用function的方法小结

    drools中使用function的方法小结

    当我们在drools中编写规则时,有些时候存在重复的代码,那么我们是否可以将这些重复代码抽取出来,封装成一个function来调用呢?那么在drools中如何自定义function?下面小编给大家介绍下drools中使用function的方法,需要的朋友可以参考下
    2022-05-05
  • Java synchronized 锁的 8 个经典问题小结

    Java synchronized 锁的 8 个经典问题小结

    本文通过8个实验探讨Java中synchronized关键字的不同锁机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-02-02
  • EasyExcel实现读写Excel文件的示例代码

    EasyExcel实现读写Excel文件的示例代码

    EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。它可以在尽可能节约内存的情况下支持读写百M的Excel,所以本文就将利用它实现读写Excel文件,感兴趣的可以了解一下
    2022-08-08

最新评论