EasyExcel文件导出,出现有文件但没有数据的问题

一开始由于JDK版本过高,我用的17,一直excel没有数据,表头也没有,后来摸索了好久,找了资料也没有,后来改了代码后报了一个错误(com.alibaba.excel.exception.ExcelGenerateException: java.lang.ExceptionInInitializerError),才发现导出时JDK版本不能过高! 然后我将版本切换为1.8就好了

Java开发笔记之EasyExcel报错com.alibaba.excel.exception.ExcelGenerateException: java.lang.ExceptionInInitializerError - 时光飞逝,逝者如斯 - 博客园 (cnblogs.com)

上代码!

使用文件流的方式,导出同时进行文件下载

前端

复制代码
 /** 导出按钮操作 */
    handleExport() {
      this.$confirm('是否确认导出所有维修记录数据项?', "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(function() {
        return exportR();
      }).then(response => {
        this.fileDownload(response.data, "维修记录.xlsx");
      }).catch(function() {});
    }

js

必须指定responseType:'blob'

java 复制代码
// 导出维修记录
export function exportR() {
  return request({
    url: '/export',
    method: 'get',
    responseType:'blob'
  })
}

后端代码

java 复制代码
    @ApiOperation("export => 导出(不分页)")
    @GetMapping("/export")
    public CommonResult export(HttpServletResponse response) throws IOException {
        List<AdRepairVo> list = repairService.getList();
        // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为用户表 然后文件流会自动关闭
        EasyExcel.write(response.getOutputStream(), AdRepairVo.class).sheet("报修表").doWrite(list);
        return CommonResult.success();
    }
相关推荐
vivo互联网技术4 分钟前
拥抱新一代 Web 3D 引擎,Three.js 项目快速升级 Galacean 指南
前端·three.js
间彧4 分钟前
DateTimeFormatter相比SimpleDateFormat在性能上有何差异?
java
江城开朗的豌豆11 分钟前
React应用优化指南:让我的项目性能“起飞”✨
前端·javascript·react.js
间彧15 分钟前
为什么说SimpleDateFormat是经典的线程不安全类
java
会飞的青蛙17 分钟前
GIT 配置别名&脚本自动化执行
前端·git
再吃一根胡萝卜19 分钟前
🔍 当 `<a-menu>` 遇上 `<template>`:一个容易忽视的菜单渲染陷阱
前端
MacroZheng23 分钟前
横空出世!MyBatis-Plus 同款 ES ORM 框架,用起来够优雅!
java·后端·elasticsearch
Asort36 分钟前
JavaScript 从零开始(六):控制流语句详解——让代码拥有决策与重复能力
前端·javascript
无双_Joney1 小时前
[更新迭代 - 1] Nestjs 在24年底更新了啥?(功能篇)
前端·后端·nestjs
在云端易逍遥1 小时前
前端必学的 CSS Grid 布局体系
前端·css