前端js发送请求下载excel文件的方法

  • 如何发送请求这里就不再介绍了,直接从请求发送后开始吧
  • 发送的数据格式为:FormData 格式,发送方式为 :post 方式

1.首先使用 new FormData() 来创建你要发送的参数,例如:

let formObj = new FormData()
formObj.append('columns', 'yourData')

2.从后端返回的文件流中开始创建下载文件,例如:

ajax(formObj).then(response => {
// 把后端返回的文件流变成一个 Blob 对象,并指定你要的MIME类型(类型:https://www.w3school.com.cn/media/media_mimeref.asp)
const blob = new Blob([response], { type: 'application/vnd.ms-excel' })
// 设置文件名
const fileName = '你的文件名-' + this.$Date().format('YYYY-MM-DD') + '.xls'
// 对于标签,只有 Firefox 和 Chrome(内核)支持 download 属性
if ('download' in document.createElement('a')) {
	// 创建 a 标签
	const link = document.createElement('a')
	// 设置 a 的链接地址,用 createObjectURL 方法创建一个url下载地址
	link.href = window.URL.createObjectURL(blob)
	// 设置下载地址的文件名
	link.download = fileName
	// 让浏览器自动点击 a 的超链接
	link.click()
	// 释放内存
	window.URL.revokeObjectURL(blob)
} else {
	// IE 浏览器兼容方法
	window.navigator.msSaveBlob(blob, fileName)
}
}).catch(error => {
	console.log(error)
})

至此即可自动弹出下载窗口了,如果你使用了某些框架,则可以结合框架做出下载提示框的效果

你可能感兴趣的:(前端)