Excel、Word等前端文件下载

// 根据url获取blob数据下载
export function doDownload(fileUrl: string, fileName: string) {
console.log('output-> fileUrl, fileName', fileUrl, fileName)
fetch(fileUrl)
.then(response => {
// 检查响应是否成功
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.blob(); // 获取响应的 Blob 数据
})
.then(blob => {
// 创建一个下载链接
const link:any = document.createElement('a');
const url = URL.createObjectURL(blob); // 将 Blob 数据转换为可下载的 URL
link.href = url;
link.download = fileName || fileUrl.split('/').pop(); // 默认使用文件名
// 触发下载
link.click();
// 清理 URL 对象
URL.revokeObjectURL(url);
link.remove();
})
.catch(error => {
console.error('File download failed:', error);
});
}
// 下载文件
export function downloadFile(url, fileName, data) {
axios({
method: 'post',
url,
responseType: 'blob',
data
}).then((res) => {
const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel;charset=utf8'
})
const objectUrl = URL.createObjectURL(blob)
downloadFunction(objectUrl, fileName)
})
}
export function downloadFunction(content, filename) {
const a = document.createElement('a')
a.href = content
a.download = filename
document.body.append(a)
a.click()
document.body.removeChild(a);
}

Usage

//下载模板
download() {
const newUrl =
window.parent.document.location.origin + `${this.moduleUrl}`
downloadFunction(newUrl, `${dayjs().format('YYYYMMDDHHmmss')}_测试模板.xlsx`)
},
posted @   Felix_Openmind  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
*{cursor: url(https://files-cdn.cnblogs.com/files/morango/fish-cursor.ico),auto;}
点击右上角即可分享
微信分享提示