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`)
},
学而不思则罔,思而不学则殆!

浙公网安备 33010602011771号