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

使用Apache POI创建XSSFWorkbook时遇WstxEventFactory未找到错误求助

Apache POI创建XSSFWorkbook时出现XMLEventFactory找不到的问题解决

我之前也碰到过一模一样的问题,HSSFWorkbook用得好好的,一换成XSSFWorkbook就报javax.xml.stream.XMLEventFactory: Provider com.ctc.wstx.stax.WstxEventFactory not found错误,咱们来拆解下原因和解决办法:

问题根源

HSSF处理的是老式的.xls格式,不需要依赖XML解析组件;但XSSF是用来处理.xlsx格式的,它基于OOXML规范,必须依赖**StAX(Streaming API for XML)**的具体实现来解析XML结构,而com.ctc.wstx.stax.WstxEventFactory就是Woodstox这个StAX实现里的核心类——你的Maven依赖里刚好缺了这个组件。

解决步骤

1. 添加Woodstox依赖

在你的pom.xml里加入Woodstox的核心依赖,这个包包含了缺失的WstxEventFactory类,推荐用和POI 3.15兼容的版本:

<dependency>
    <groupId>org.codehaus.woodstox</groupId>
    <artifactId>woodstox-core-asl</artifactId>
    <version>4.4.1</version>
</dependency>

2. 排查依赖冲突

如果加了依赖还是报错,检查下你的项目里有没有其他依赖排除了StAX相关组件,比如有些框架可能会主动排除woodstox-core-asl或者stax-api,导致实现类找不到。可以用Maven的dependency:tree命令查看依赖树:

mvn dependency:tree

找到那些排除了StAX组件的依赖,调整排除规则或者升级对应依赖版本。

3. 确认版本兼容性

POI 3.15对Woodstox的版本要求是4.x系列,尽量不要用太新或者太旧的版本,避免出现兼容性问题。

补充说明

你的现有依赖里已经加了poi-ooxml,理论上它应该会间接依赖StAX相关组件,但有时候因为Maven的依赖传递规则(比如其他依赖的版本覆盖),或者仓库镜像的问题,导致依赖没有被正确引入,手动添加Woodstox依赖就能解决这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:59:48