vue中实现下载xlsx格式的excel

阅读: 评论:0

vue中实现下载xlsx格式的excel

vue中实现下载xlsx格式的excel

// 这是axios文件
const VueAxios = {vm: {},// eslint-disable-next-line no-unused-varsinstall(Vue, router = {}, instance) {if (this.installed) {return;}this.installed = true;if (!instance) {// ('You have to install axios');return;}Vue.axios = instance;Object.defineProperties(Vue.prototype, {axios: {get: function get() {return instance;}},$http: {get: function get() {return instance;}}});}
};export {VueAxios,// eslint-disable-next-line no-undef//instance as axios
}
// 封装一个axios请求方式
import Vue from 'vue'
import axios from 'axios'
import store from '@/store'
import { VueAxios } from './axios'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import {Modal} from 'ant-design-vue'let apiBaseUrl = window._CONFIG['domianURL']// 创建 axios 实例
const service = ate({baseURL: apiBaseUrl// timeout: 9000 // 请求超时时间
})// 请求头,参数设置
quest.use(config => {const token = (ACCESS_TOKEN)if (token) {config.headers['X-Access-Token'] = token}if (hod === 'get') {if (config.url.indexOf('sys/dict/getDictItems') < 0) {config.params = {_t: Date.parse(new Date()) / 1000,...config.params}}}return config
}, (error) => {ject(error)
})// 接收器,拦截code === 500,踢出并重定向
sponse.use(res => {let data = res.dataif (de === 520) {loginOut()}return res.data
}, (err) => {if (sponse) {let data = sponse.dataif (de === 500 || data.status === 500) {loginOut()}}
})
function loginOut () {store.dispatch('Logout').then(() => {})
}const installer = {vm: {},install (Vue, router = {}) {Vue.use(VueAxios, router, service)}
}
export {installer as VueAxios,service as axios
}
// 在utils文件中封装一个方法  然后导出
import Vue from 'vue'
import { axios } from '@/utils/request'export function downFile(url,parameter){return axios({url: url,params: parameter,method:'get' ,responseType: 'blob'})
}
handleExportXls (fileName) {if (!fileName || typeof fileName != 'string') {fileName = '导出文件'}let param = { ...this.queryParam }if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {param['selections'] = this.selectedRowKeys.join(',')}downFile(portXlsUrl, param).then((data) => {if (!data) {this.$message.warning('文件下载失败')return}if (typeof window.navigator.msSaveBlob !== 'undefined') {window.navigator.msSaveBlob(new Blob([data], { type: 'application/vnd.ms-excel' }), fileName + '.xlsx')} else {let url = ateObjectURL(new Blob([data], { type: 'application/vnd.ms-excel' }))let link = ateElement('a')link.style.display = 'none'link.href = urllink.setAttribute('download', fileName + '.xlsx')document.body.appendChild(link)link.click()veChild(link) //下载完成移除元素vokeObjectURL(url) //释放掉blob对象}})},

本文发布于:2024-01-29 15:35:07,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170651370916284.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:格式   vue   xlsx   excel
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23