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

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

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

下面是解释:

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里再加就好了,这边传了个空对象。

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

相关推荐