广告
返回顶部
首页 > 资讯 > 精选 >ajax怎么实现excel报表导出
  • 195
分享到

ajax怎么实现excel报表导出

2023-06-08 06:06:37 195人浏览 泡泡鱼
摘要

小编给大家分享一下ajax怎么实现excel报表导出,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!背景项目中遇到一个场景,要导出一个excel报表。由于需要tok

小编给大家分享一下ajax怎么实现excel报表导出,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

背景

项目中遇到一个场景,要导出一个excel报表。由于需要token验证,所以不能用a标签;由于页面复杂,所以不能使用表单提交。初步考虑前端使用ajax,后端返回流,定义指定的header。

第一版

主要代码

前端

使用Jquery的ajax

var queryParams = {"test":"xxx"};var url = "xxx";$.ajax({ type : "POST", //提交方式 url : url,//路径 contentType: "application/JSON", data: jsON.stringify(queryParams), beforeSend: function (request) {  request.setRequestHeader("Authorization", "xxx"); }, success : function(result) {  const blob = new Blob([result], {type:"application/vnd.ms-excel"});  if(blob.size < 1) {   alert('导出失败,导出的内容为空!');   return  }  if(window.navigator.msSaveOrOpenBlob) {   navigator.msSaveOrOpenBlob(blob, 'test.xls')  } else {   const aLink = document.createElement('a');   aLink.style.display = 'none';   aLink.href = window.URL.createObjectURL(blob);   aLink.download = 'test.xls';   document.body.appendChild(aLink);   aLink.click();   document.body.removeChild(aLink);  } }});

后端

使用easypoi(如何使用easypoi请自行百度)

import cn.afterturn.easypoi.excel.ExcelExportUtil;import cn.afterturn.easypoi.excel.entity.ExportParams;@PostMapping(value = "/download")public void downloadList(@RequestBody Objct obj, httpservletResponse response) { ...... List<Custom> excelList = new ArrayList<>();    // excel总体设置   ExportParams exportParams = new ExportParams();   // 指定sheet名字   exportParams.setSheetName("test");   Workbook workbook = ExcelExportUtil.exportExcel(exportParams, Custom.class, excelList);    response.setContentType("application/vnd.ms-excel");   response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("test", "utf-8") + ".xls");   OutputStream outputStream = response.getOutputStream();   workbook.write(outputStream);   outputStream.flush();   outputStream.close();    ...... }

测试结果

excel能正常导出,但下载下来的excel全是乱码。经过各种找答案,整理了一下可能是以下原因导致:

后端未设置字符集,或者在spring框架的过滤器中统一设置了字符集;
2、前端页面未设置字符集编码;
3、需要在ajax中添加 request.responseType = “arraybuffer”;

经过不断测试,我的应该是第三点导致。但在jquery ajax 中添加后仍然不起作用,乱码问题始终无法解决。

第二版

主要代码

前端,使用原生的ajax。后端未变动。

var xhr = new XMLHttpRequest();xhr.responseType = "arraybuffer"; xhr.open("POST", url, true);xhr.onload = function () { const blob = new Blob([this.response], {type:"application/vnd.ms-excel"}); if(blob.size < 1) {  alert('导出失败,导出的内容为空!');  return; } if(window.navigator.msSaveOrOpenBlob) {  navigator.msSaveOrOpenBlob(blob, 'test.xls') } else {  const aLink = document.createElement('a');  aLink.style.display = 'none';  aLink.href = window.URL.createObjectURL(blob);  aLink.download = 'testxls';  document.body.appendChild(aLink);  aLink.click();  document.body.removeChild(aLink);  return; }}xhr.setRequestHeader("Authorization", "xxx");xhr.setRequestHeader("Content-Type", "application/json");xhr.send(JSON.stringify(queryParams));

测试结果

下载的excel不再乱码,原生ajax中使用 “arraybuffer” 使用是生效的。

总结

“arraybuffer” 这个参数导致的excel导出乱码,在原生的ajax中设置是有效的,在jquery的ajax中暂时还没找到生效的方式。

以上是“ajax怎么实现excel报表导出”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: ajax怎么实现excel报表导出

本文链接: https://www.lsjlt.com/news/252224.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ajax怎么实现excel报表导出
    小编给大家分享一下ajax怎么实现excel报表导出,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!背景项目中遇到一个场景,要导出一个excel报表。由于需要tok...
    99+
    2023-06-08
  • vue怎么实现excel表格的导入导出
    这篇文章主要介绍“vue怎么实现excel表格的导入导出”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue怎么实现excel表格的导入导出”文章能帮助大家解决问题。一、下载xlsx插件npm&nb...
    99+
    2023-07-06
  • 《springboot中实现excel表格导出》
    《springboot中实现excel表格导出》 简介 在Spring Boot中,实现Excel表格导出的方式有很多种,以下是几种常见的方法: 使用Apache POI:Apache POI是一个开源的Java API,用于处理Micro...
    99+
    2023-08-23
    spring boot excel java
  • 怎么用vue导出excel表格
    这篇文章主要介绍了怎么用vue导出excel表格的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用vue导出excel表格文章都会有所收获,下面我们一起来看看吧。一、安装vue-json-excelnpm&n...
    99+
    2023-06-30
  • Java怎么实现Excel导入导出操作
    今天小编给大家分享一下Java怎么实现Excel导入导出操作的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 功能测试1....
    99+
    2023-06-29
  • React怎么实现导入导出Excel文件
    这篇文章主要介绍“React怎么实现导入导出Excel文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“React怎么实现导入导出Excel文件”文章能帮助大家解决问题。表示层这里我是使用的是ant...
    99+
    2023-06-05
  • Java利用POI实现导入导出Excel表格
    本文实例为大家分享了Java利用POI实现导入导出Excel表格的具体代码,供大家参考,具体内容如下 一、Java利用POI实现导入导出Excel表格demo 1.引入依赖 <...
    99+
    2022-11-13
  • JAVA怎么实现导出Excel功能
    Java可以通过使用Apache POI库来实现导出Excel功能。下面是一个简单的示例代码:```javaimport org.a...
    99+
    2023-10-08
    java
  • vue实现excel表格的导入导出的示例
    目录一、下载xlsx插件二、通过element-ui组件的upload组件上传文件三、把选择的Excel文件把文件内容转化为二进制四、通过插件中的xlsx.read()读取二进制数据...
    99+
    2023-05-15
    vue excel导入导出 vue excel导入 vue excel导出
  • 怎么用C#实现NPOI的Excel导出
    这篇文章主要讲解了“怎么用C#实现NPOI的Excel导出”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用C#实现NPOI的Excel导出”吧!技术点:自定义attribute属性通过反...
    99+
    2023-06-26
  • Spring 实现excel及pdf导出表格示例
    整理文档,搜刮出一个Spring 实现excel及pdf导出表格的代码,稍微整理精简一下做下分享。excel 导出:package light.mvc.utils.excel; import java.util.Date; import ...
    99+
    2023-05-31
    spring excel ce
  • 怎么使用Java+element实现excel导入和导出
    本篇内容介绍了“怎么使用Java+element实现excel导入和导出”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本项目是前端vue3,...
    99+
    2023-07-06
  • Java如何利用POI实现导入导出Excel表格
    这篇文章主要介绍“Java如何利用POI实现导入导出Excel表格”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java如何利用POI实现导入导出Excel表格”文章能帮助大家解决问题。一、Java...
    99+
    2023-07-06
  • JS怎么实现导出Excel和CSV文件
    这篇文章主要介绍了JS怎么实现导出Excel和CSV文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS怎么实现导出Excel和CSV文件文章都会有所收获,下面我们一起来看看吧。一、js导出Excel<...
    99+
    2023-06-30
  • SpringBoot整合EasyExcel实现Excel表格导出功能
    目录栗子1.组件介绍2.配置文件SpringBoot项目pom.xml3.项目代码项目结构ExportController.javaMock.javaCitySheet.javaCo...
    99+
    2022-11-13
  • php导出excel出现500错误怎么办
    本文操作环境:windows10系统、php 7、thinkpad t480电脑。想必很多小伙伴都遇到过导出excel的问题,也许我们平时在使用phpexcel类时觉得很方便。但是你会发现在导出大量数据的时候可就没那么简单了,往往会导出时会...
    99+
    2018-06-06
    php excel 500
  • Java中怎样实现导出Excel功能
    这篇文章将为大家详细讲解有关Java中怎样实现导出Excel功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用第三方库实现导出Excel业界有句话:不重复造轮子。 使用工具类可以减少日常繁琐的编码,减...
    99+
    2023-06-14
  • 怎么用Vue代码实现导出Excel功能
    这篇“怎么用Vue代码实现导出Excel功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用Vue代码实现导出Excel...
    99+
    2023-07-04
  • 使用apache poi怎么实现导出excel文件
    使用apache poi怎么实现导出excel文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码如下:package com.icourt.util;import org....
    99+
    2023-05-31
    apachepoi excel
  • Spring Boot项目怎么实现Excel导入与导出功能
    本文小编为大家详细介绍“Spring Boot项目怎么实现Excel导入与导出功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“Spring Boot项目怎么实现Excel导入与导出功能”文章能帮助大家解决疑惑,下面跟...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作