js实现excel文件下载
1.文件流下载文件: /** * @description: * @param {type} fileName-文件名 suffix-后缀名 * @return: */ export function axiosPostExport (url, data, fileName, suffix='.xlsx') { url = getUrlIfUseMock(url, {method: 'POST'}); return axios({ method: 'post', url, data, responseType: 'blob' }).then(res => { return res.data }).then(res => { const content = res const fileNamex = fileName + '-' + moment().format('YYYYMMDDHHmmss') + suffix const blob = new Blob([content]) if ('download' in document.createElement('a')) { // 非IE下载 const elink = document.createElement('a') elink.download = fileNamex elink.style.display = 'none' elink.href = URL.createObjectURL(blob) document.body.appendChild(elink) elink.click() URL.revokeObjectURL(elink.href) // 释放URL 对象 document.body.removeChild(elink) } else { // IE10+下载 navigator.msSaveBlob(blob, fileNamex) } }).catch(error => console.log(error)) } 或者:let url = `/admin/user/list/all/export?countryCode=310101`; let xhr = new XMLHttpRequest(); xhr.open("POST", url, true); // 也可以使用POST方式,根据接口 xhr.responseType = "blob"; // 返回类型blob,XMLHttpRequest支持二进制流类型 xhr.onload = function() { if (this.status === 200) { let blob = this.response; //使用response作为返回,而非responseText let reader = new FileReader(); reader.readAsDataURL(blob); // 转换为base64,可以直接放入a标签href reader.onload = function(e) { // 转换完成,创建一个a标签用于下载 let a = document.createElement("a"); a.download = "原始数据.xls"; a.href = e.target.result; a.click(); }; } }; xhr.send("countryCode=310101"); 2.一般文件下载: <button class="layui-btn search" style="margin-left: 50px;" v-if="hash==2"><a href="/admin/user/list/all/export" download="userlist.xls" style="color: #fff;">导出</a></button> 3.与2实现效果差不多
var $form = $('<form method="post"></form>'); $form.attr('action', '/admin/user/list/all/export?countryCode=310101'); $form.appendTo($('body')); $form.submit(); $form.remove();
4.直接open()打开url链接下载,这时候接口也是返回来的二进制的数据:
download(file){//下载文件
// console.log("fileL:",file);
const index = this.fileList1.indexOf(file);
const filedir=this.filedirList[index];
const that = this;
let url = `${this.urlDownload}?fileName=${file.name}&filedir=${filedir}`;
window.open(url);//下载文件
},
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)