选择表格行实现导出为excel表格的功能,在现代业务需求中很常见,博主最近就做了这样的一个需求,因此写下这篇文章整理备份。
表格添加多选框
- <el-table-column
- type="selection"
- width="55"
- align="center">
- </el-table-column>
type设置为selection
显示多选框
点击多选框触发事件@selection-change="handleSelectionChange"
- handleSelectionChange(val) {
- this.multipleSelection = val;
- },
给multipleSelection变量赋值为当前选择的数据,拿到将要导出的数据并请求接口
请求接口代码
- var url = ''; // 请求的url
- var xhr = new XMLHttpRequest();
- var obj = JSON.stringify(this.multipleSelection); //转换为字符串类型
- var token = sessionStorage.getItem('token')
- xhr.open("POST", url, true)
- xhr.responseType = "blob"; //blob对象
- xhr.setRequestHeader("content-type", "application/json"); //设置请求头
- xhr.setRequestHeader("token", token); // 自定义请求头
- xhr.onload = function(){
- if(this.status == 200){
- var blob = this.response;
- var fileName = '信息表.xlsx';
- if(window.navigator.msSaveOrOpenBlob){ // IE浏览器下
- navigator.msSaveBlob(blob, fileName);
- } else {
- var link = document.createElement("a");
- link.href = window.URL.createObjectURL(blob);
- link.download = fileName;
- link.click();
- window.URL.revokeObjectURL(link.href);
- }
- }
- };
- xhr.send(JSON.stringify(obj))
请求成功
接口返回以上二进制流文件,下载保存为excel文件。
完。
微信小程序
互联网开发,终身学习者,欢迎您的关注!
2020年4月22日 上午8:17
厉害啊
2020年4月10日 上午10:21
博主,我返回二进制流文件了,怎么下载,求指导
2020年4月10日 下午2:12
@堂堂7272 文章中请求接口的代码就是点击导出的请求,请求成功直接就在浏览器下载了, 具体要看你们的后台怎么和你们约定的接口参数