JAVA使用EasyExcel 进行文件的下载

2023-11-06

Spring Boot中使用EasyExcel 进行文件的下载

1.引入依赖

	<dependency>
		<groupId>com.alibaba</groupId>
		<artifactId>easyexcel</artifactId>
		<version>3.1.1</version>
	</dependency>

2.创建实体类

@Data
@EqualsAndHashCode(callSuper = false)
public class User {
    @ExcelProperty("id")
    private String id;
    @ExcelProperty("姓名")
    private String name;
    @ExcelProperty("密码")
    private String password;
}

3. 控制器中的方法

@Autowired
private Service service;

@PostMapping("/export")
public void download(HttpServletResponse response) throws IOException {
    // 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
    response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
    response.setCharacterEncoding("utf-8");
    // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
    String fileName = URLEncoder.encode("测试", "UTF-8").replaceAll("\\+", "%20");
    response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
    //user.class 为实体类,date()是返回的集合
    EasyExcel.write(response.getOutputStream(), User.class).sheet("模板").doWrite(service.data());
}

3.在业务层获取数据集合(Service类)

private List<User> data() {
    List<User> users = new ArrayList<>();
    User user = new User();
    user.setName("张三");
    user.setPassword("123456");
    users.add(user);
    return users;
}

4.前端Vue 方法代码

const updown = () => {

axios({ // 用axios发送get请求
        method: 'post',
        url: 'http://localhost:xxx', // 请求地址
        responseType: 'blob', // 表明返回服务器返回的数据类型
       // data:patient.patient,  //提交的数据
        headers: {
      'Content-Type': 'application/json'
      }
    }).then(res => { // 处理返回的文件流
      //new Blob([res])中不加data就会返回下图中[objece objece]内容(少取一层)
      const blob = new Blob([res.data],{type: "application/vnd.ms-excel"});      
      const fileName = '文件名称.xlsx';//下载文件名称
      const elink = document.createElement('a');
      elink.download = fileName;
      elink.style.display = 'none';
      elink.href = URL.createObjectURL(blob);
      document.body.appendChild(elink);
      elink.click();
      URL.revokeObjectURL(elink.href); // 释放URL 对象
      document.body.removeChild(elink);
    })
};

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA使用EasyExcel 进行文件的下载 的相关文章

  • 浏览时 Java Applet 不会被终止

    当用户离开加载小程序的页面时 如何停止 Java 小程序的进程 我正在使用 Chrome 现在要杀死小程序 我必须使用窗口的任务栏并杀死进程 java exe Java applet 具有生命周期方法 那些是init start stop
  • 检查两个日期周期是否重叠[重复]

    这个问题在这里已经有答案了 我有两个日期范围 start1 end1 gt gt date1 start2 end2 gt gt date2 我想检查两个日期是否重叠 我的流程图我假设 运算符对于比较是有效的 boolean isOverL
  • 为什么用java日历解析时会得到错误的月份

    Date fakeDate sdf parse 15 07 2013 11 00 AM Calendar calendar Calendar getInstance calendar setTime fakeDate int current
  • Vue js按钮冻结dom

    我试图在按下按钮时切换包含加载动画的跨度 直到使用 v if 函数完成 但是当我按下按钮时 DOM 冻结并且 span 元素保持不变 直到函数调用结束 如何让 DOM 不冻结并显示加载图标 非阻塞按钮按下可能是一个解决方案 HTML
  • Netbeans 雷达插件配置

    我使用的是 Netbeans 8 0 1 在提交到 SVN 之前 我需要从 IDE 运行并检查 SonarQube 分析 我已经安装了 Netbeans Radar 插件 用于启动本地分析并检查结果 这个插件有一个名为 Get Issues
  • 将 Swing 集成到简单的文本冒险游戏中

    我对 Java 中的一些中级概念相当陌生 最近 我制作了一款名为 DazzleQuest 的文本冒险游戏 它完全在开发者控制台 终端中运行 它涉及到我的朋友作为角色 所以我想向他们展示它 并通过将命令行的功能和控制台的输出转移到一个简单的
  • 使用 PowerMock 和 TestNG 模拟单个静态方法

    class StaticClass public static String a return a public static String ab return a b 我想嘲笑StaticClass a以便它返回 x 并致电StaticC
  • 控制启动时的竞争条件

    我有一些代码想要执行一些一次性初始化 但这段代码没有明确的生命周期 因此在初始化完成之前 我的逻辑可能会被多个线程调用 所以 我想基本上确保我的逻辑代码 等待 直到初始化完成 这是我的第一次剪辑 public class MyClass p
  • 当我打印出数组列表的索引时如何删除最后一个逗号[重复]

    这个问题在这里已经有答案了 List
  • Jetty 提供静态内容所需的最少文件集?

    背景 免责声明 I have veryJava 经验很少 我们之前在 Ant 构建期间使用了 Jetty 6 的包装版本来处理按需静态内容 JS CSS 图像 HTML 因此我们可以使用 PhantomJS 针对 HTTP 托管环境运行单元
  • BODMAS系统的加法和减法

    我一直在构建一个简单的公式计算器 但一直被加法和减法困扰 正如您应该知道的 在计算方程时 您遵循优先级算术规则 即括号 顺序 幂函数 除法 乘法 加法和减法 问题是加法和减法具有相同的优先级 因此您可以从左到右阅读 到目前为止 这是我的代码
  • 将 async/await 与 webpack-simple 配置一起使用会引发错误:RegeneratorRuntime 未定义

    我正在使用具有以下配置的 webpack simple 模板 包 json name vue wp simple description A Vue js project version 1 0 0 author v private tru
  • GSSAPI 中的 javax.naming.AuthenticationException

    我正在尝试使用 JAVA GSSAPI 执行 NTLM 绑定 我收到此错误 javax naming AuthenticationException GSSAPI 根异常是 javax security sasl SaslException
  • CXF 增加连接池大小而不更改 http.maxConnections

    最近我被要求将 CXF 配置为与我们旧的 XFire 服务相同的参数 这些参数之一是Keep Alive timeout 60 max 20 然而 我做了一些研究 看来 CXF 使用 JVMHttpURLConnection引擎盖下的对象
  • 不支持使用 JDK 版本“11.0.1”进行构建。请安装 JDK 版本 `1.8.0`

    我已经下载了 Visual Studio for Mac 并尝试开始学习 Xamarin iOS 和 Android 问题是当我尝试运行 android 项目时出现以下错误 Building with JDK Version 11 0 1
  • 将 JPanel 添加到 JFrame

    我有一个程序 其中将 JPanel 添加到 JFrame public class Test Test2 test new Test2 JFrame frame new JFrame Test frame setLayout new Bor
  • 在服务器上创建 Zip 文件并使用 java 下载该 zip

    我从 mkyong 获得了以下代码 用于在本地压缩文件 但是 我的要求是在服务器上压缩文件并需要下载它 任何人都可以帮忙吗 代码写入zip文件 public void zipFiles File contentFile File navFi
  • Java:易失性足以使类线程安全?

    我有一个关于 Java 中 volatile 语句的问题 请看这个构造的例子 class Master Foo is a class with thread safe methods public volatile Foo foo clas
  • 确保 MAVEN_HOME 设置正确

    这里是 Java 和 Maven 菜鸟 使用 OSX 10 8 并使用 HomeBrew 安装 Maven 1 如果我说which mvn我会得到这个 usr local bin mvn 2 如果我说echo MAVEN HOME我不会得到
  • 如何读取FTL文件中的JSONArray?

    我在我的 Java 文件中硬编码了以下 JSON 对象 JSONObject notificationInfoJson new JSONObject notificationInfoJson put title Payment Receiv

随机推荐

  • 7.4.3-elasticsearch索引字段类型参数

    fielddata 大多数字段默认情况下都会建立索引方便查询 但是针对排序 聚合以及脚本访问字段值则需要另外的访问方式 查询操作需要回答 哪些doc包含查询的词 而排序和聚合则需要回答 doc中该字段的值是多少 大多数字段可以通过文档索引在
  • linux grep命令

    1 作用 Linux系统中grep命令是一种强大的文本搜索工具 它能使用正则表达式搜索文本 并把匹 配的行打印出来 grep全称是Global Regular Expression Print 表示全局正则表达式版本 它的使用权限是所有用户
  • maven中mirror镜像和repository仓库配置

    maven仓库和镜像配置 1 名词解释 2 reportsitory仓库配置 3 mirror镜像配置 4 mirror与reporsitory 4 1 mirror与reporsitory的关系 4 2 mirrorOf的作用 1 名词解
  • Deveco studio 鸿蒙app访问网络详细过程(js)

    目录 效果图 安装IDE工具Deveco studio 创建项目 项目配置 编辑 功能开发 效果图 话不多说 上效果 安装IDE工具Deveco studio 下载地址 HUAWEI DevEco Studio和SDK下载和升级 Harmo
  • vue2如何使用element ui快速搭建自己的前端页面

    文章目录 前言 一 element ui是什么 二 使用步骤 1 在项目中引入 element ui 2 全局引入 element ui 组件 3 局部引入 element ui 组件 4 使用组件 前言 element ui 是一款非常好
  • 使用pyecharts绘制系统依赖关系图

    使用pyecharts绘制系统依赖关系图 背景介绍 近期梳理了公司内部系统之间的数据关系 得到了多个excel格式的统计文件 每个文件包含了该系统自身数据清单 依赖的其他系统的数据清单 对其他系统供应的数据清单 各系统之间依赖关系复杂 所以
  • 【Tomcat】Tomcat配置ssl证书

    记一次因各种需求在Linux中配置tomcat的https自签发证书过程 SSL证书简介 1 公开可信认证机构 例如CA 但是申请一般是收费的 一般几百到几千一年 在这里可以给你们介绍一下腾讯云截止到目前还有免费一年的CA证书服务 可以用一
  • 第三方服务器不在响应,服务器是怎样响应请求的?

    小弟最近在改后端项目 但出了个 bug 又解决不了 我觉得是我的后端知识太欠缺了 特来这里请教 流程是这样的 前端有上送信息 接口收到信息后 用收到的部分信息再去第三方接口请求信息 把两部分合起来存储 收到的信息中有一部分是用户ID 绝不重
  • Java: StringBuffer类的运用

    字符串的学习不比其他数据类型的学习 不管是对对象 对象的实体 属性等 的打印 还是在平常所有可以展示出来供我们进行参考的数据内容 共同点就是它们都是 string 字符串 都是一种字符串文本 而且在对一些我们所想表达的数据的提交和获取时 都
  • DBA的一些职责

    1 DBA的一些职责 安装和升级数据库服务器 如Oracle Microsoft SQL server 以及应用程序工具 数据库设计系统存储方案 并制定未来的存储需求计划 一旦开发人员设计了一个应用 就需要DBA来创建数据库存储结构 tab
  • DNN结构:CNN、LSTM/RNN中的Attention结构

    前言 attention作为一种机制 有其认知神经或者生物学原理 注意力的认知神经机制是什么 如何从生物学的角度来定义注意力 大多数attention gating 技巧都可以直接加入现有的网络架构 通过合理设计初始化和训练步骤也可以利用现
  • Linux--写时拷贝、内存管理

    目录 1 内存管理 2 写时拷贝技术 1 内存管理 简单分页 逻辑页 物理页 页表 将虚拟内存空间和物理内存空间划分为大小相同的页面 4k 8k 16k等 虚拟内存 在磁盘上划分一块空间 为什么要有逻辑页面和物理页面 物理页面很长 不能确定
  • ubuntu 设置网络代理

    Ubuntu下通过终端设置网络代理 以便apt get等命令可以正常使用 只需在终端里设置http proxy系统变量即可 plain export http proxy http usr name usr password ipaddre
  • 华为云交付项目服务器配置表,云服务器设备配置列表

    云服务器设备配置列表 内容精选 换一换 当您在华为云上部署了弹性云服务器以及其他云服务 想在关联VPC内通过内网域名实现互访 可以为弹性云服务器配置内网域名解析 内网域名可以随意创建 无需注册 只需要保证VPC内唯一 本操作以为弹性云服务器
  • JavaScript设计模式——工厂模式

    在介绍工厂模式之前 首先我们要理解一下什么是设计模式 什么是设计原则 设计模式 通常在我们解决问题的时候 很多时候不是只有一种方式 我们通常有多种方式来解决 但是肯定会有一种通用且高效的解决方案 这种解决方案在软件开发中我们称它为设计模式
  • 字符串的截取

    第二个 开始截取 String orderArr1 order substring order indexOf order indexOf 1 最后一个 开始截取 String orderArr1 order substring order
  • iOS如何提高tableView的性能

    a 重用cell 我们都知道申请内存是需要时间 特别是在一段时间内频繁的申请内存将会造成很大的开销 而且上tebleView中cell大部分情况下布局都是一样的 这个时候我们可以通过回收重用机制来提高性能 b 避免content的重新布局
  • webservice 安全认证请求头信息

    java import java io IOException import java util Enumeration import javax servlet Filter import javax servlet FilterChai
  • 【深度学习

    文章目录 一 前言 二 Computer vision 2 1 Image classification 2 2 Object detection 2 3 Image segmentation 2 4 Depth estimation 三
  • JAVA使用EasyExcel 进行文件的下载

    Spring Boot中使用EasyExcel 进行文件的下载 1 引入依赖