EasyExcel 学习之 导出 “WPS 表格在试图打开文件时遇到错误”

目录

    • [1. 版本](#1. 版本)
    • [2. 现象](#2. 现象)
      • [2.1. Postman 文件下载成功且 WPS 可以正常打开](#2.1. Postman 文件下载成功且 WPS 可以正常打开)
      • [2.2. VUE 下载成功但 WPS 无法打开](#2.2. VUE 下载成功但 WPS 无法打开)
    • [3. 原因:前端未指定 responseType](#3. 原因:前端未指定 responseType)
    • [4. 常见问题](#4. 常见问题)
      • [4.1. NoSuchMethodError](#4.1. NoSuchMethodError)
        • [4.1.1. org.apache.logging.log4j.LogBuilder org.apache.logging.log4j.Logger.atTrace()](#4.1.1. org.apache.logging.log4j.LogBuilder org.apache.logging.log4j.Logger.atTrace())
        • [4.1.2. Could not initialize class org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook](#4.1.2. Could not initialize class org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook)

1. 版本

包 版本
org.springframework.boot:spring-boot-starter-parent 2.0.8.RELEASE
com.alibaba:easyexcel 4.0.0

特别注意:不同的 Springboot 版本可能现象不同,2.7.14 就是可以的。

2. 现象

EasyExcel # Issue

本人在使用 EasyExcel 导出 xls 文件后,通过 WPS 打开文件,呈现两种情况:

2.1. Postman 文件下载成功且 WPS 可以正常打开

一般情况下导出下载只能通过 GET 方法触发,但是实际中前端可以通过一些代码逻辑模拟 GET 下载,即上图所示 POST 下载。

2.2. VUE 下载成功但 WPS 无法打开

3. 原因:前端未指定 responseType

在 Axios 中,responseType 是一个非常重要的配置项,它用于告诉 Axios 你期望从服务器接收到的响应数据类型。

常见的 responseType 值及其用途:

值 适用场景 备注
json (默认)用于解析JSON数据
blob 下载文件,二进制数据 因为 Blob 对象可以被用来创建一个指向该文件内容的 URL,进而触发浏览器的下载行为或者在页面上展示文件内容
arraybuffer 图片、音频、视频等二进制文件
document XML文档
text 纯文本数据
stream 流数据

4. 常见问题

4.1. NoSuchMethodError

4.1.1. org.apache.logging.log4j.LogBuilder org.apache.logging.log4j.Logger.atTrace()
4.1.2. Could not initialize class org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook
xml 复制代码
<dependency>
	<groupId>org.apache.logging.log4j</groupId>
	<artifactId>log4j-api</artifactId>
	<version>2.21.1</version>
	<scope>compile</scope>
</dependency>

相关推荐
曹牧1 小时前
C#:空合并运算符
java·前端·数据库
布吉岛的石头2 小时前
Java 程序员第 50 阶段2:预训练的目标函数:自回归语言建模本质
java·开发语言·人工智能·深度学习·回归·transformer
golang学习记2 小时前
IDEA 2026年的玩法已经完全不同
java·ide·intellij-idea
紧跟先前的步伐2 小时前
Go AI Agent 实战 05|Temperature 与生成参数:让模型输出可控
java·人工智能·golang
金銀銅鐵2 小时前
[Java] 展示添加元素时 ArrayList 的内部变化
java·后端·ai编程
斌糖雪梨3 小时前
spring auth 核心流程详解
java·后端·spring
文丑颜不良啊4 小时前
LeetCode201~225题目解析
java·leetcode
SL_staff6 小时前
4G设备掉线三层归因指南:SIM卡、模组、JVS-IOT网关配置精准锁定
java·物联网·产品
Wang's Blog7 小时前
Java 项目实战: 交友项目 - 黑名单:取消黑名单
java·windows·交友
杨杨杨大侠7 小时前
DeepSeek Harness:连 Agent Loop 都能替换的插件架构
java·人工智能·agent