You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java17+SpringBoot2.7.9兼容的Excel相关依赖版本咨询

适配Java 17与Spring Boot 2.7.9的Excel依赖版本解决方案

你的报错根源在于Apache POI 3.10.1版本过于老旧,无法兼容Java 17环境——该版本依赖的xmlbeans库中XmlOptions.put(Object)方法签名已在后续版本变更,导致反射调用失败。同时jxl 2.6是停止维护多年的库,同样存在Java 17兼容性问题。

推荐依赖配置

方案1:移除jxl,用Apache POI统一处理Excel(优先推荐)

jxl仅支持xls格式且已停止维护,Apache POI同时支持xls和xlsx,且完全兼容Java 17。结合Spring Boot 2.7.9的依赖管理,可使用以下配置:

方式A:使用Spring Boot默认管理的POI版本(4.1.2,兼容Java8+)

<!-- 处理xls格式 -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
</dependency>

<!-- 处理xlsx格式 -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
</dependency>

方式B:升级到更适配Java17的POI 5.x版本

若需要更完善的Java17支持,可覆盖Spring Boot的版本管理,使用POI 5.2.5(稳定版):

<properties>
    <poi.version>5.2.5</poi.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
    </dependency>
</dependencies>

方案2:保留jxl(不推荐)

jxl无官方Java17兼容版本,可尝试第三方维护的分支版本,但仍有兼容性风险:

<dependency>
    <groupId>net.sourceforge.jexcelapi</groupId>
    <artifactId>jxl</artifactId>
    <version>2.6.12</version>
</dependency>

关键注意事项

  • 所有POI相关依赖版本必须保持一致,避免版本冲突。
  • 移除原POI依赖中的xml-apis排除配置,新版POI与Java17的XML API原生兼容,无需排除。
  • 测试时覆盖xls和xlsx两种格式,确保导出功能正常。

内容的提问来源于stack exchange,提问作者Rohith P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 16:07:20