zoukankan      html  css  js  c++  java
  • vue使用post导出文件

    项目中导出excel文件很常见,分为get和post方式,get相对简单些,在url后面拼接需要的参数

    post方式请求返回的是表格流文件,需要使用blob对象指定要读取的数据,在此记录下

    <div class="same-head">
            <el-button type="success" size="mini" @click="hadnleAdd">登记系统信息</el-button>
            <el-button type="primary" size="mini" @click="hadnleImport">导入</el-button>
            <el-button type="primary" size="mini" @click="hadnleExport">导出</el-button>
            <el-button type="primary" size="mini" @click="hadnleDownload">下载模板</el-button>
    </div>
    exportFile() {
                let that = this;
                this.$http({
                    method: 'post',
                    url: this.$api.projectInfo.exportExcel,
                    data: JSON.stringify(this.exportData),
                    responseType: 'blob',//服务器返回的数据类型
                }).then((res) => {
                    console.log(res, '响应状态');
                    let blob = new Blob([res], {type:"application/force-download"}) // Blob 对象表示一个不可变、原始数据的类文件对象
                    console.log(blob);
                    let fileReader = new FileReader()   // FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件的内容
                    fileReader.readAsDataURL(blob)
                    //开始读取指定的Blob中的内容。一旦完成,result属性中将包含一个data: URL格式的Base64字符串以表示所读取文件的内容
                    fileReader.onload = (e) => {
                        let a = document.createElement('a')
                        a.download = `项目应用信息台账.xlsx`
                        a.href = e.target.result
                        document.body.appendChild(a)
                        a.click()
                        document.body.removeChild(a)
                    }
                }).catch(err => {
                    console.log(err);
                })
            }
  • 相关阅读:
    顺序容器添加,查询,删除元素
    使用fiddler对app做弱网测试
    工作总结
    软件测试面试题_3
    软件测试面试题_2
    软件测试面试题_1
    MySQL的下载及安装
    关于let以及var的区别
    关于获取各种浏览器可见窗口大小的一点点研究
    log4J指定类下面的日志分隔
  • 原文地址:https://www.cnblogs.com/theblogs/p/13470460.html
Copyright © 2011-2022 走看看