当前位置: 首页 > news >正文

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”

http://www.lryc.cn/news/174413.html

相关文章:

  • 第9章 【MySQL】InnoDB的表空间
  • 工作、生活常用免费api接口大全
  • 寻找单身狗
  • 【pytest】 allure 生成报告
  • 动态链接库搜索顺序
  • 【CAN、LIN通信的区分】
  • Redis环境配置
  • UG NX二次开发(C++)-采用std::vector对体对象的质心进行排序
  • 一点思考|关于「引领性研究」的一点感悟
  • 什么是HTTP/2?它与HTTP/1.1相比有什么改进?
  • IDEA
  • NSS [HXPCTF 2021]includer‘s revenge
  • 《动手学深度学习 Pytorch版》 7.1 深度卷积神经网络(AlexNet)
  • C++ - 双指针_盛水最多的容器
  • 分类预测 | Matlab实现NGO-CNN-SVM北方苍鹰算法优化卷积支持向量机分类预测
  • 分享一个java+springboot+vue校园电动车租赁系统(源码、调试、开题、lw)
  • 高性能计算环境下的深度学习异构集群建设与优化实践
  • Laravel框架 - Facade门面
  • 算法通关村第16关【青铜】| 滑动窗口思想
  • CentOS安装openjdk和elasticsearch
  • 【新版】系统架构设计师 - 案例分析 - 信息安全
  • 数据库设计(火车订票系统)
  • qemu+docker在服务器上搭建linux内核调试环境
  • Stable Diffusion 参数介绍及用法
  • 打印大对象日志导致GC问题的解决
  • 【Docker】学习笔记
  • 网易云信4K 8K RTC助力远程医疗的技术实践
  • 【排序算法】冒泡排序、插入排序、归并排序、希尔排序、选择排序、堆排序、快速排序
  • Linux学习笔记-应用层篇
  • MySQL数据库的存储引擎