<el-button type="primary" @click="downloadChartData" size="mini">下 载</el-button>
// 隐藏的download按钮,返回数据后自动触发click生成csv文件
<el-button type="primary" style="display: none">
<a href="####" style="color: #fff;" id="download">excel下载地址</a>
</el-button>
downloadChartData() {
let self = this
let param = {
"start":common.timeFormat(this.form.time[0],'yy/MM/dd-hh:mm:ss'),
"end":common.timeFormat(this.form.time[1],'yy/MM/dd-hh:mm:ss'),
"aggregator": "zimsum",
"tags": {
"isp": this.form.isp,
"cdn": this.form.cdn,
"province": this.form.province,
"domain": this.form.domain,
"acctype": this.form.domainType
},
// "type": this.form.domainType
}
let totalParam = JSON.parse(JSON.stringify(param))
let paramTags = totalParam.tags
self.loading = true
for(let key in param.tags){
if(param.tags[key] === 'total'){
delete param.tags[key]
}
}
this.$ajax({
method: 'post',
url: `${self.host}/opentsdb/download`,
data: param,
responseType: 'blob'
}).then(function (res) {
self.loading = false
if(res.data.size && res.data.size === 0){
self.$message({
type: 'warning',
message: '暂无数据!'
});
}else{
let domainTags = paramTags.domain === 'total' ? '域名汇总' : paramTags.domain
let ispTags = paramTags.isp === 'total' ? '-运营商汇总' : '-' + common.ispMap[paramTags.isp]
let cdnTags = paramTags.cdn === 'total' ? '-运营商汇总' : '-' + common.cdnMap[paramTags.cdn]
let provinceTags = paramTags.province === 'total' ? '-运营商汇总' : '-' + common.provinceMap[paramTags.province]
let retFile = res.data
let downloadLink = document.getElementById('download')
let blob = new Blob([retFile], {type: 'text/plain;charset=utf-8'})
let downloadUrl = window.URL.createObjectURL(blob)
let downloadFileName = domainTags + ispTags + cdnTags + provinceTags + '-' + param.start + '___' + param.end + '-' + new Date().getTime() + '.csv'
downloadLink.setAttribute('href', downloadUrl)
downloadLink.setAttribute('download', downloadFileName)
// 自动点击下载按钮,进行下载
downloadLink.click()
}
})
}

前端点击下载excel表格数据的更多相关文章

  1. Java操作Jxl实现导出数据生成Excel表格数据文件

    实现:前台用的框架是Easyui+Bootstrap结合使用,需要引入相应的Js.Css文件.页面:Jsp.拦截请求:Servlet.逻辑处理:ClassBean.数据库:SQLserver. 注意: ...

  2. Vue3实现动态导入Excel表格数据

    1.  前言 在开发工作过程中,我们会遇到各种各样的表格数据导入,大部分我们的解决方案:提供一个模板前端进行下载,然后按照这个模板要求进行数据填充,最后上传导入,这是其中一种解决方案.个人认为还有另外 ...

  3. Visual Studio 2010利用libxl读写excel表格数据

    C++读写数据,一般通过txt文件,但是随着数据量的增大,采集数据时运用excel表格的优势得以逐步体现.本文主要介绍一下运用第三方库libxl,对excel表格数据进行读写.分为三个部分,第一部分是 ...

  4. 用多线程优化Excel表格数据导入校验的接口

    公司的需求,当前某个Excel导入功能,流程是:读取Excel数据,传入后台校验每一条数据,判断是否符合导入要求,返回给前端,导入预览展示.(前端等待响应,难点).用户再点击导入按钮,进行异步导入(前 ...

  5. 利用 pandas库读取excel表格数据

    利用 pandas库读取excel表格数据 初入IT行业,愿与大家一起学习,共同进步,有问题请指出!! 还在为数据读取而头疼呢,请看下方简洁介绍: 数据来源为国家统计局网站下载: 具体方法 代码: i ...

  6. jxl读取Excel表格数据

    调用jxl包实现Excel表格数据的读取,代码如下: import java.io.File; import java.io.IOException; import java.util.ArrayLi ...

  7. C#调用NPOI组件读取excel表格数据转为datatable写入word表格中并向word中插入图片/文字/书签 获得书签列表

    调用word的com组件将400条数据导入word表格中耗时10分钟简直不能忍受,使用NPOI组件耗时4秒钟.但是NPOI中替换书签内容的功能不知道是不支持还是没找到. 辅助类 Excel表格数据与D ...

  8. JXL读取写入excel表格数据

    问题描述: 使用java的jxl包创建.写入excel表格数据 问题解决: (1)说明 (2)写入execel数据 注: 以上是写入数据需要调用的函数接口 注: 具体接口调用过程,如上所示 (3)读取 ...

  9. 将包含经纬度点位信息的Excel表格数据导入到ArcMap中并输出成shapefile

    将包含经纬信息的Excel表格数据,导入到ArcMap中并输出成shapefile,再进行后面的操作.使用这种方法可以将每一个包含经纬信息的数据在ArcMap中点出来. 一.准备数据 新建Excel表 ...

随机推荐

  1. HearthBuddy的plugin加载

    // Hearthbuddy.Windows.MainWindow // Token: 0x060001FF RID: 511 RVA: 0x0008951C File Offset: 0x00087 ...

  2. 一、基础篇--1.2Java集合-HashMap死循环问题

    为什么HashMap会出现死循环 首先,我们知道java的HashMap不是线程安全的.多线程下应该使用ConcurrentHashMap. HashMap底层是基于动态数组和单向链表(JDK1.7, ...

  3. SprintBoot日志

    yml配置 #logging logging.file: "logs/app.log" logging: level: root: debug file: max-size: 10 ...

  4. vue 登录页面填坑

    上边的导航头,会显示在登陆页面上,暂时的解决办法实: <template> <div style="position: fixed; top:0px; left:0px;h ...

  5. Struts ognl表达式语言几个符号

    #  获取非根元素值  . 动态都建map集合 $  配置文件取值 %  提供一个ognl表达式运行环境 <%@ page language="java" import=&q ...

  6. 批量替换word内容

    有一个需求需要把word中的一段文档的编号批量替换 如,把133-183批量的替换成31-81,需要批量的替换word,脚本如下 from docx import Document import os ...

  7. Java之HSF搭建demo

    1.去阿里云官网下载Demo edas-app-demo.zip 2.下载Ali-Tomcat和Pandora,注意红色下面字体 a)下载 Ali-Tomcat,保存后解压至相应的目录(如:d:\wo ...

  8. FTP\SFTP连接命令

    五.ftp连接     输入:ftp 10.18.49.19 2121六.输入账号密码  zhangsan/sdjg34t#七.输入:ls    查看文件是否上传       如上传 输入:bye   ...

  9. Ubuntu16.04源

    vim /etc/apt/sources.list # 阿里云deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420. ...

  10. 获取packageName和startActivity

    import android import pprint # 获取packageName droid = android.Android(('192.168.1.101', 42250)) droid ...