SpringBoot集成easypoi实现execl导出
<!--easypoi依赖,excel导入导出--><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter</artifactId><version>4.4.0</version></dependency>
通过@Exce注解设置标头名字和单元格宽度;
导出实体设置:
@Data
public class ExportOrder implements Serializable {/*** 订单号*/@Excel(name = "订单号", width = 10.0)private String orderId;/*** 产品名称*/@Excel(name = "产品名称", width = 10.0)private String productName;/*** 品牌*/@Excel(name = "品牌", width = 10.0)private String brandName;/*** 分类*/@Excel(name = "分类", width = 10.0)private String type;/*** 数量*/@Excel(name = "数量", width = 10.0)private Long orderNumber;/*** 付款时间*/@Excel(name = "付款时间", width = 10.0)private String payTime;/*** 付款金额*/@Excel(name = "付款金额", width = 10.0)private BigDecimal payAmount;/*** 订单状态*/@Excel(name = "订单状态", width = 10.0)private String status;/*** 操作*/@Excel(name = "操作", width = 10.0)private String orderOpt;/*** 下单时间*/@Excel(name = "下单时间", width = 10.0)private String createTime;
}
Controller层
@GetMapping("export")public void exportUsers(OrderEntity orderEntity, HttpServletResponse response) {orderManagerService.exportOrders(orderEntity,response);}
Service层
@Overridepublic void exportOrders(OrderEntity orderEntity,HttpServletResponse response) {try {//从数据库查询到数据List<OrderDao> orderDaoList = orderMapper.selectOrders(orderEntity);List<SupplyChainOrdersVo> supplyChainOrdersVos = null;if (CollectionUtil.isEmpty(orderDaoList)) {log.error("order表中未查询到对应数据");return;}supplyChainOrdersVos = new ArrayList<>(orderDaoList.size());.......//设置信息头,告诉浏览器内容为excel类型response.setHeader("content-Type", "application/vnd.ms-excel");//sheet名称String sheetName = "订单";response.setCharacterEncoding("UTF-8");//设置下载名称response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode("订单表.xls","UTF-8"));//字节流输出ServletOutputStream out = response.getOutputStream();//设置excel参数ExportParams params = new ExportParams();//设置sheet名params.setSheetName(sheetName);//设置标题params.setTitle("订单表");//转成对应的类型;要不然会报错,虽然也可以导出成功。List<ExportOrder> exportUsers = changeType(supplyChainOrdersVos);//导入excelWorkbook workbook = ExcelExportUtil.exportExcel(params, ExportOrder.class,exportUsers);//写入workbook.write(out);} catch (Exception e) {e.printStackTrace();}}
导出效果

postman数据导出设置

%E8%AE%A2%E5%8D%95%E8%A1%A8.xls 导出的文件是转义的utf8编码,在浏览器上下载是正常的中文格式.
问题
以上设置完成文件还是有问题的话,大概率是前端的问题,可以找他对线了。
下载的文件打不开,需要前端设置一下请求的响应的格式:
responseType=“blob”
相关文章:
SpringBoot集成easypoi实现execl导出
<!--easypoi依赖,excel导入导出--><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter</artifactId><version>4.4.0</version></dependency>通过Exce注解设置标头名字和单…...
第9章 【MySQL】InnoDB的表空间
表空间 是一个抽象的概念,对于系统表空间来说,对应着文件系统中一个或多个实际文件;对于每个独立表空间来说,对应着文件系统中一个名为 表名.ibd 的实际文件。大家可以把表空间想象成被切分为许许多多个 页 的池子,当我…...
工作、生活常用免费api接口大全
手机号码归属地:提供三大运营商的手机号码归属地查询。全国快递物流查询:1.提供包括申通、顺丰、圆通、韵达、中通、汇通等600快递公司在内的快递物流单号查询。2.与官网实时同步更新。3.自动识别快递公司。IP归属地-IPv4区县级:根据IP地址查…...
寻找单身狗
在一个数组中仅出现一次,其他数均出现两次,这个出现一次的数就被称为“单身狗“。 一.一个单身狗 我们知道异或运算操作符 ^ ,它的特点是对应二进制位相同为 0,相异为 1。 由此我们容易知道两个相同的数,进行异或运算得到的结果…...
【pytest】 allure 生成报告
1. 下载地址 官方文档; Allure Framework 参考文档: 最全的PytestAllure使用教程,建议收藏 - 知乎 https://github.com/allure-framework 1.2安装Python依赖 windows:pip install allure-pytest 2. 脚本 用例 import pytest class …...
动态链接库搜索顺序
动态链接库搜索顺序 同一动态链接库 (DLL) 的多个版本通常存在于操作系统 (OS) 内的不同文件系统位置。 可以通过指定完整路径来控制从中加载任何给定 DLL 的特定位置。 但是,如果不使用该方法,则系统会在加载时搜索 DLL,如本主题中所述。 DL…...
【CAN、LIN通信的区分】
CAN和LIN是两种不同的通信协议,用于不同的应用场景。CAN(Controller Area Network)是一种高速、可靠、多节点的串行通信协议,主要用于汽车电子领域的高速数据传输和控制;而LIN(Local Interconnect Network&…...
Redis环境配置
【Redis解压即可】链接:https://pan.baidu.com/s/1y4xVLF8-8PI8qrczbxde9w?pwd0122 提取码:0122 【Redis桌面工具】 链接:https://pan.baidu.com/s/1IlsUy9sMfh95dQPeeM_1Qg?pwd0122 提取码:0122 Redis安装步骤 1.先打开Redis…...
UG NX二次开发(C++)-采用std::vector对体对象的质心进行排序
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、前言2、体对象质心结构体的构造3、采用NXOpen获取part中的所有体对象4、通过遍历体对象集合来实现std::vector<MyBody>的赋值5、对结构体排序6、调用的完整源代码7、生成dll并测试一、pan…...
一点思考|关于「引领性研究」的一点感悟
前言:调研过这么多方向之后,对研究方向的产生与发展具备了一些自己的感悟,尤其是在AI安全领域。私认为,所谓有价值、有意义的研究,就是指在现实社会中能够产生波澜、为国家和社会产生一定效益的研究。 举例来说&#x…...
什么是HTTP/2?它与HTTP/1.1相比有什么改进?
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ HTTP/2 简介⭐ 主要的改进和特点⭐ 总结⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端…...
IDEA
快捷键 好用的快捷键,可以使写代码变得更加便捷~ IntelliJ IDEA具有许多有用的快捷键,这些快捷键可以帮助开发人员更快速、高效地编写和管理代码。以下是一些常用的IntelliJ IDEA快捷键,这些快捷键在Java开发中特别有用: 基本编辑…...
NSS [HXPCTF 2021]includer‘s revenge
NSS [HXPCTF 2021]includer’s revenge 题目描述:Just sitting here and waiting for PHP 8.1 (lolphp). 题目源码:(index.php) <?php ($_GET[action] ?? read ) read ? readfile($_GET[file] ?? index.php) : inclu…...
《动手学深度学习 Pytorch版》 7.1 深度卷积神经网络(AlexNet)
7.1.1 学习表征 深度卷积神经网络的突破出现在2012年。突破可归因于以下两个关键因素: 缺少的成分:数据 数据集紧缺的情况在 2010 年前后兴起的大数据浪潮中得到改善。ImageNet 挑战赛中,ImageNet数据集由斯坦福大学教授李飞飞小组的研究人…...
C++ - 双指针_盛水最多的容器
盛水最多的容器 11. 盛最多水的容器 - 力扣(LeetCode) 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的…...
分类预测 | Matlab实现NGO-CNN-SVM北方苍鹰算法优化卷积支持向量机分类预测
分类预测 | Matlab实现NGO-CNN-SVM北方苍鹰算法优化卷积支持向量机分类预测 目录 分类预测 | Matlab实现NGO-CNN-SVM北方苍鹰算法优化卷积支持向量机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现NGO-CNN-SVM北方苍鹰算法优化卷积支持向量机分类预…...
分享一个java+springboot+vue校园电动车租赁系统(源码、调试、开题、lw)
💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…...
高性能计算环境下的深度学习异构集群建设与优化实践
★深度学习;模式识别;图像处理;人工智能建模;人工智能;深度学习算法;强化学习;神经网络;卷积神经网络;人工神经网络;VIBE算法;控制系统仿真&#…...
Laravel框架 - Facade门面
1 、官方文档给出的定义 “Facades 为应用的 服务容器 提供了一个「静态」 接口。Laravel 自带了很多 Facades,可以访问绝大部分功能。Laravel Facades 实际是服务容器中底层类的 「静态代理」 ,相对于传统静态方法,在使用时能够提供更加灵活…...
算法通关村第16关【青铜】| 滑动窗口思想
1. 滑动窗口的基本思想 一句话概括就是两个快慢指针维护的一个会移动的区间 固定大小窗口:求哪个窗口元素最大、最小、平均值、和最大、和最小 可变大小窗口:求一个序列里最大、最小窗口是什么 2. 两个入门题 (1)子数组最大平…...
从销售报表分析到供应链数据优化,SpreadJS 透视表插件全场景应用指南
在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...
用51单片机+普中开发板DIY一个抢答器,从Proteus仿真到实物烧录全流程避坑
51单片机抢答器实战:从Proteus仿真到普中开发板烧录全解析 在电子设计竞赛和课堂教学中,抢答器是一个经典的单片机实践项目。它不仅涵盖了基本的IO控制、定时器应用和中断处理等核心知识点,还能锻炼初学者的系统设计思维。本文将带你用普中开…...
Qwen2.5-VL图文对话模型5分钟快速部署:零基础搭建智能识图助手
Qwen2.5-VL图文对话模型5分钟快速部署:零基础搭建智能识图助手 1. 准备工作 1.1 了解Qwen2.5-VL模型 Qwen2.5-VL-7B-Instruct-GPTQ是一款强大的多模态图文对话模型,基于Qwen2.5-VL-7B-Instruct模型经过AngelSlim压缩优化而来。这个模型能够࿱…...
从零手写VSCODE 配置文件
VSCODE 配置文件书写详解 一.task.json 决定文件怎么编译,本质就是在指定的type下不断重复执行command和args构成的命令 1.基本框架 {"version":"2.0.0",//固定版本号"tasks":[ //任务数组,可以定义多个任务 {//任务一},{//任务二}],"i…...
Phi-3-Mini-128K效果实测:128K长上下文代码分析与摘要生成
Phi-3-Mini-128K效果实测:128K长上下文代码分析与摘要生成 最近,一个名为Phi-3-Mini-128K的模型在开发者社区里引起了不小的讨论。大家关注的焦点,不是它有多大的参数量,而是它那个惊人的“128K”上下文长度。简单来说࿰…...
千问3.5-9B Python入门实战:从零搭建你的第一个AI应用
千问3.5-9B Python入门实战:从零搭建你的第一个AI应用 1. 为什么选择千问3.5-9B入门AI开发 如果你刚接触Python和AI开发,可能会觉得搭建AI应用是个遥不可及的目标。但实际上,借助星图GPU平台和千问3.5-9B这样的开源大模型,入门A…...
# 007、复杂驱动与ECU抽象:硬件深度访问与传感器执行器集成
深夜的示波器 上周三凌晨两点,产线测试报出一个诡异问题:某个车窗控制模块在低温下偶发升窗抖动。逻辑层代码检查了三遍,RTE接口确认无误,可问题就在那里——像幽灵一样时隐时现。最后把示波器探头直接钩到电机驱动芯片的引脚上,才发现是MOSFET栅极驱动波形在低温下出现了…...
SEO_如何通过内容优化有效提升SEO效果?(193 )
SEO内容优化:提升网站SEO效果的关键策略 在当今的数字化时代,搜索引擎优化(SEO)已经成为了任何一个想要在网络上脱颖而出的关键步骤。特别是在百度这个中国最大的搜索引擎平台上,如何通过内容优化有效提升SEO效果&…...
Cogito-v1-preview-llama-3B应用探索:建筑行业BIM文档智能摘要系统
Cogito-v1-preview-llama-3B应用探索:建筑行业BIM文档智能摘要系统 1. 引言:建筑行业的文档挑战与AI机遇 建筑行业每天产生海量的BIM文档——设计图纸、施工方案、材料清单、进度报告,这些文档往往长达数百页,工程师和项目经理需…...
OpenClaw+千问3.5-9B翻译工作流:PDF双语对照生成
OpenClaw千问3.5-9B翻译工作流:PDF双语对照生成 1. 为什么需要自动化翻译工作流 去年我在研究区块链共识算法时,遇到一个棘手问题:大量前沿论文只有英文版本。手动复制PDF内容到翻译工具,再粘贴回文档排版,不仅效率低…...
