vue用ElementUI导出Excel表格

import axios from 'axios';
import qs from 'qs';
import { message } from 'element-ui';
 
export const exportTable = (url, data, fileName = '报表') => {  // url是后端接口,data是需要传输的参数
  return axios.post(url, qs.stringify(data), {
    responseType: 'blob',
    headers: {
      token: getCookie('token')
    }
  })
    .then((res) => {
      if (res.status === 200) {
        let disposition = res.headers['content-disposition'];
        let tmpFileName = decodeURI(disposition.substring(disposition.indexOf('filename=') + 9, disposition.length));
        let suffix = tmpFileName.substring(tmpFileName.indexOf('.'), tmpFileName.length);
        let url = URL.createObjectURL(res.data);
        let a = document.createElement('a');
        a.href = url;
        a.setAttribute('download', fileName ? fileName + suffix : tmpFileName);
        document.body.appendChild(a).click();
        a.parentNode.removeChild(a);
        URL.revokeObjectURL(url);
      }
    })
    .catch((res) => {
      message.error('导出失败');
    })
}
posted @ 2020-11-18 15:03  大大的可爱  阅读(256)  评论(0编辑  收藏  举报