资讯专栏INFORMATION COLUMN

ajax post导出excel小结(解决乱码问题)

tanglijun / 1676人阅读

摘要:当前有一个需求前端对当前页面的数据做筛选之后需要将其导出至文件且发送的请求需传入需验证的参数如页面信息尝试了提交及其他方法后出现乱码等问题最后用成功完成了导出。直接贴代码下面是解释这段代码不加会导致导出的出现乱码问题。

当前有一个需求 前端对当前页面的数据做筛选之后需要将其导出至excel文件
且发送的请求需传入需验证的参数如页面token信息
尝试了form提交及其他方法后出现excel乱码等问题 最后用ajax成功完成了导出。
直接贴代码:

下面是解释:

xhr.responseType = "arraybuffer";
这段代码不加会导致导出的excel出现乱码问题。

xhr.onload内操作如下:使用Blob的构造函数并将取得的response数据作为Blob实例对象的第一个参数,接着这第二个参数type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"可以把表格格式保存为xlsx模式,还有一种是"application/vnd.ms-excel"老版本的用法不需要使用。
由于返回的response数据是二进制流数据所以需借助Blob对象将其转化。另外可能还有其他js插件可以转化这里就不做演示了。

然后创建下载地址以供下载。

最后在页面新增临时a标签点击下载之后remove移除这个dom即可

另外的代码就是增加请求头等需与后端沟通好的信息了
后端需要规定参数的话params里再加就好了,这边传了个空对象。

以上就是最近项目遇到的一点问题希望对读完的您有帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/106117.html

相关文章

  • 导出CSV文件格式错误的小结

    摘要:目前导出方式占用内存较大。比如有些状态字段,数据库存的就是数字或只占一个字节,完全换成中文状态的话,可能达个字节甚至更多。若是必须要用中文形式。中文乱码解决的话,其实也很简单,函数,将转为编码,在中打开就不会错了 问题描述:目前、一般情况下,在web开发过程中,使用导入导出报表的情形很多。我们先说导出。项目数据量多导出行数较多,50万行左右,选择的是csv方式导出。针对以下应用场景,导...

    Taonce 评论0 收藏0
  • nodejs(officegen)+vue(axios)在客户端导出word文档

    摘要:方式请求的数据只能存放在内存空间,可以通过访问,但是无法保存到硬盘,因为不能直接和硬盘交互,否则将是一个安全问题。是第一个第三方的库,所以同理。这里是返回的对象这里表示类型创建下载的链接下载后文件名点击下载下载完成移除元素释放掉对象 前言 我的项目中有一个需求:点击按钮生成可编辑的word文档订单详情的信息我使用的前端框架是Vue.js、后台使用的是node.jsnode.js生成和导...

    Julylovin 评论0 收藏0
  • post 下载文件 (excel)

    摘要:具体的官方证据暂时还没找到,只有下可传输的格式为下可传输的格式为所以选择有以下说服后端使用方式。 1.为什么要使用sumit post 下载 excel?最初做下载 就知道使用ajax 传 参数过去,后发现 返回的值 那里显示一堆乱码,不触发excleshowImg(https://segmentfault.com/img/bVboGGo?w=907&h=284); 至于为什么ajax...

    mist14 评论0 收藏0
  • post 下载文件 (excel)

    摘要:具体的官方证据暂时还没找到,只有下可传输的格式为下可传输的格式为所以选择有以下说服后端使用方式。 1.为什么要使用sumit post 下载 excel?最初做下载 就知道使用ajax 传 参数过去,后发现 返回的值 那里显示一堆乱码,不触发excleshowImg(https://segmentfault.com/img/bVboGGo?w=907&h=284); 至于为什么ajax...

    崔晓明 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<