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>

相关推荐
一只猿Hou15 分钟前
java分页插件| MyBatis-Plus分页 vs PageHelper分页:全面对比与最佳实践
java·mybatis
程序员弘羽20 分钟前
C++ 第四阶段 内存管理 - 第二节:避免内存泄漏的技巧
java·jvm·c++
旷世奇才李先生24 分钟前
Tomcat 安装使用教程
java·tomcat
勤奋的知更鸟38 分钟前
Java 编程之策略模式详解
java·设计模式·策略模式
qq_49244844640 分钟前
Java 访问HTTP,信任所有证书,解决SSL报错问题
java·http·ssl
爱上语文43 分钟前
Redis基础(4):Set类型和SortedSet类型
java·数据库·redis·后端
lifallen1 小时前
Paimon vs. HBase:全链路开销对比
java·大数据·数据结构·数据库·算法·flink·hbase
深栈解码2 小时前
JMM深度解析(三) volatile实现机制详解
java·后端
liujing102329292 小时前
Day04_刷题niuke20250703
java·开发语言·算法
Brookty2 小时前
【MySQL】JDBC编程
java·数据库·后端·学习·mysql·jdbc