描述
项目中用到了单页面应用,使用axios请求,需要做一个excel文件流导出,完整代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>单页面应用</title>
</head>
<body>
<div id="app">
123
</div>
</body>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<!-- 引入 Vue 和 Vant 的 JS 文件 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vant@2.8/lib/vant.min.js"></script>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
},
created(){
console.log(123)
axios.get( 'http://192.168.3.91:8090//export1?id=1',{'responseType': 'blob'} ).then(
function(response){
console.log(response)
let a = document.createElement('a');
let blob = new Blob([response.data], {type: "application/vnd.ms-excel"});
let objectUrl = URL.createObjectURL(blob);
a.setAttribute("href",objectUrl);
a.setAttribute("download", '计划单电子表格.xlsx');
a.click();
}
)
},
methods:{
}
})
</script>
</html>
注意
不论是axios还是原生ajax请求,注意响应类型为'responseType': 'blob'
否则导出的文件在打开时提示文档修复。
不会,我可以学;落后,我可以追赶;跌倒,我可以站起来!我一定行!