前端调用后端编写的导出excel表格接口

news2024/11/19 19:31:11

前提:

我在前人将excel工具封装好的基础上,实现前端导出后端编写的excel表格接口,出现过很多问题。

 先看前人的代码:

前端
handleExport() {
      const params = Object.assign({}, this.queryParams.value)
      this.download('/system/a/feedback/export', params,`feedback_${new Date().getTime()}.xlsx`)
    },
后端:
@PostMapping("/export")
    public void export(HttpServletResponse response, QueryFeedbackDTO query) {
        List<Feedback> list = feedbackService.selectFeedbackList(query);
        ExcelUtil<Feedback> util = new ExcelUtil<Feedback>(Feedback.class);
        util.exportExcel(response, list, "反馈数据");
    }

再看我出现的问题: 

问题1:
Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported

解决问题1:

该问题表示,后端不支持application/x-www-form-urlencoded类型的参数。

问题2:

Request method 'POST' not supported

解决问题2:

 这个问题很简单,大家一看就知道,后端不支持POST请求。大家肯定会说,这个问题也很好解决啊,就是你代码的请求类型写错了。其实不然,大家想到的我也想得到。那我的这个问题到底怎么回事呢?

原因:在我实现前端导出excel文件的功能时,我先去看了其他模块的关于实现怎么导出excel文件的代码。我就借用了前人的代码,在基础上修改了,结果就出现了这个问题。

分析:当我看着我的后端代码的请求方式就是POST请求时,我百思不得其解。于是乎,我就将矛头指向了前端的代码。

前端代码如下:

上述代码也很简单,就两行。this.ConsultationOverview是传递给后端接口的参数。

但是这个没毛病呀,很前人的代码一样呀。但是我万万没想到,这种写法只适合后端是GET请求的接口。

问题3:

明明已经下载下来了excel文件了,打开文件,数据为空。

解决问题3:

 该问题就是一个典型的,顾前忘后。文件都能下载下来,而且控制台还可以输出数据,结果文件中没有数据。

原因:

自己写的实体类的字段没有添加@Excel()注解。

问题4:

 前后端传参的问题:JSON格式还是表格格式以及请求类型的问题等等

解决问题四:

我的前端:
handleExport() {
      const params = Object.assign({}, this.ConsultationOverview)
      this.download('/system/a/department/exportlist', params,`feedback_${new Date().getTime()}.xlsx`)
    },
我的后端:
@PostMapping("/exportlist")
    public void exportList(QueryCriteriaDto queryCriteriaDTO, HttpServletResponse response){
        List<Appointment> appointmentTable = departmentService.getAppointmentTable(queryCriteriaDTO, 0);
        ExcelUtil<Appointment> util = new ExcelUtil<Appointment>(Appointment.class);
        util.exportExcel(response, appointmentTable, "挂号预约数据");
    }

我把后端@Requestbody注解删除了。

如果你也遇到以上问题,或者你也想实现前端下载excel文件的效果,那就参考以下吧。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1337994.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu多用户环境dockerbug,卸载重装docker流程

之前不小心误操作删除重装docker&#xff0c;结果删除没成功&#xff0c;更没法重装&#xff0c;每次apt install都会报一个docker错误&#xff0c;虽然不影响软件的常规安装&#xff5e;但是现在还是需要装一个完整docker&#xff0c;还是选择删除一下&#xff0c;重点是关闭服…

数据分析——数据预处理和数据管道构建

目标&#xff1a;对于拿到的一个任意数据集&#xff0c;编写类似数据加载程序&#xff0c;以适应深度学习的研究。 框架&#xff1a; 针对不同的时间序列数据集&#xff0c;可以总结如下关键步骤&#xff0c;以编写类似上述代码的深度学习数据处理流程&#xff1a; 1. **了解…

十一.MyBatis的缓存

11.1缓存介绍 为什么使用缓存&#xff1f; 使用缓存的主要原因是为了提高应用程序的性能和响应速度。缓存可以存储经常访问的数据或计算结果&#xff0c;从而避免重复进行相同的计算或查询数据库等耗时的操作。通过使用缓存&#xff0c;你可以减少对原始数据源的访问次数&…

Springboot整合MVC进阶篇

一、概述 1.1SpringBoot整合SpringMVC配置 SpringBoot对SpringMVC的配置主要包括以下几个方面&#xff1a; 自动配置&#xff1a;SpringBoot会自动配置一个嵌入式的Servlet容器&#xff08;如Tomcat&#xff09;&#xff0c;并为我们提供默认的SpringMVC配置。这样我们无需手动…

电脑显卡驱动停止响应该怎么办?为什么会出现这种情况

显卡驱动停止响应的原因 当你电脑突然弹框说显卡驱动停止响应&#xff0c;你知道是出现什么问题了吗&#xff0c;下面我们为大家总结了有可能造成显卡驱动停止响应的原因。1. 过热&#xff1a;显卡在长时间高负载下可能会过热&#xff0c;导致驱动停止响应。过高的温度可能…

RM3100 stm32驱动(硬件i2c)

目录 RM3100接线HAL库I2C函数HAL_I2C_Mem_ReadHAL_I2C_Mem_WriteHAL_I2C_Master_Transmit / HAL_I2C_Master_Receive例子 HSHAKE寄存器 cubemx配置RM3100寄存器驱动最终效果 RM3100接线 原理图 SA0 SA1接地&#xff0c;此时i2c设备地址为0100000&#xff0c;即0x20 如果SA0接…

PDF编辑工具--Acrobat Pro DC 2023中文

Acrobat Pro DC 2023是一款功能强大的PDF编辑和管理软件&#xff0c;它可以帮助用户在创建、编辑、转换和共享PDF文档方面达到前所未有的高度。这款软件提供了丰富的编辑功能&#xff0c;使用户能够轻松添加注释、高亮、下划线、插入文本等&#xff0c;自由地编辑PDF文档。除了…

django之drf框架(两个视图基类、5个扩展视图类、9个视图子类)

两个视图基类 APIView和GenericAPIView drf提供的最顶层的父类就是APIView&#xff0c;以后所有的类都继承自他 GenericAPIView继承自APIView&#xff0c;他里面封装了一些工能 基于APIViewModelSerializerResposne写5个接口 子路由&#xff1a;app01>>>urls.py …

关于表格太大了jupyter无法单次处理的问题

记录下自己的心路历程…耗时耗精力 我用的数据库单个表格就很大&#xff0c;一个表格有30多G&#xff0c;jupyter无法处理这么大的表格&#xff0c;会直接把电脑的进程全部结束掉&#xff0c;结束掉要是能运行成功倒也行啊&#xff0c;然鹅…给我报错说处理不了&#xff0c;罢工…

关于解决微服务A调用微服务B的接口获取不到数据

前提&#xff1a; 1、首先&#xff0c;你得确保写的不同微服务之间调用接口时没有任何问题的&#xff0c;可以参考我上一篇文章&#xff1b; 2、其次&#xff0c;你需要具备怎么去调试&#xff0c;怎么去定位问题。 具备以上两点其实问题就迎刃而解了。先来看看我的问题吧 问题…

arcpy获取矢量坐标系

代码&#xff1a; shppath "矢量路径" shpdescribe arcpy.Describe(shppath) print(shpdescribe.spatialReference.name) 结果&#xff1a;

ROS学习记录:如何在Github上寻找并安装软件包

一、打开网页输入www.github.com 二、进入github界面 三、打开一个终端&#xff0c;输入mkdir catkin_ws1建立一个工作空间 四、使用cd catkin_ws1进入工作空间 五、使用mkdir src创建一个子目录src就是source&#xff0c;原始资料的意思,指的就是程序源代码这类资源材料&#…

layui表格中预览视频和图片

全代码 <!DOCTYPE html> <html><head><title>Layui&#xff1a;数据表格table中预览图片、视频</title><meta charset"utf-8"/><link rel"stylesheet" href"../dist/css/layui.css"><style>&l…

多维时序 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多变量时间序列预测

多维时序 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多变量时间序列预测 目录 多维时序 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.MATLAB实现SSA-BiLSTM麻雀算法优化…

string类的函数讲解

标准库中的string类 首先关于string类的了解&#xff0c;我先给出官方的string类的讲解&#xff0c;以便于大家的学习&#xff1a;链接: http://www.cplusplus.com/reference/string/string/?kwstring 这个网站是C官方网站&#xff0c;里面对于各个关键字和库函数的讲解都是很…

Kubernetes (四) 资源清单及yaml文件详解

一. 资源清单 二. 编写yaml文件及内容详解 常用命令 …

【开源】基于Vue+SpringBoot的停车场收费系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 停车位模块2.2 车辆模块2.3 停车收费模块2.4 IC卡模块2.5 IC卡挂失模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 停车场表3.2.2 车辆表3.2.3 停车收费表3.2.4 IC 卡表3.2.5 IC 卡挂失表 四、系统实现五、核心代码…

服务器数据恢复-raid6离线磁盘强制上线后分区打不开的数据恢复案例

服务器数据恢复环境&#xff1a; 服务器上有一组由12块硬盘组建的raid6磁盘阵列&#xff0c;raid6阵列上层有一个lun&#xff0c;映射到WINDOWS系统上使用&#xff0c;WINDOWS系统划分了一个GPT分区。 服务器故障&分析&#xff1a; 服务器在运行过程中突然无法访问。对服务…

RPKM、FPKM 和 TPM cpm

落在一个基因区域内的read counts数目取决于基因长度和测序深度。一个基因越长&#xff0c;测序深度越高&#xff0c;落在其内部的reads数目就会相对越多。而为了比较不同样本中不同基因的表达量&#xff0c;就去除测序深度和基因长度的的影响。采用了两个标准化&#xff1a;re…

2023 NCTF writeup

CRYPTO Sign 直接给了fx,gx&#xff0c;等于私钥给了&#xff0c;直接套代码&#xff0c;具体可以参考&#xff1a; https://0xffff.one/d/1424 fx [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…