栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

vue 下载工具代码块示例

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

vue 下载工具代码块示例

前端和后台代码结合,实现导出功能,前端使用vue,后台使用python,后台生成表格的数据流,返回给前端导出

vue业务代码块

    download(res){
        const a = document.createElement('a');
        let blob = new Blob([res], {type: 'application/vnd.ms-excel'})
        a.style.display = 'none';
        var now = new Date();
        var nowStr = now.format("YYYYMMDDhhmmss");
        a.download = '导出' + '_'+ nowStr + '.xls';
        a.href = URL.createObjectURL(blob);
        document.body.appendChild(a)
        a.click();
        document.body.removeChild(a)
    },
    exportTaskClick() {
      const querystring = require("querystring");
      const data = {
        id: this.id_list.join(','),
      };
      http.post("/export_excel/", querystring.stringify(data), {responseType: 'blob'}).then((res) => {
        this.download(res)
      });
    },

main.js

Date.prototype.format = function (fmt) {
  var o = {
    "M+": this.getMonth() + 1,                   //月份
    "d+": this.getDate(),                        //日
    "h+": this.getHours(),                       //小时
    "m+": this.getMinutes(),                     //分
    "s+": this.getSeconds(),                     //秒
    "q+": Math.floor((this.getMonth() + 3) / 3), //季度
    "S": this.getMilliseconds()                  //毫秒
  };

  //  获取年份
  // ①
  if (/(y+)/i.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  }

  for (var k in o) {
    // ②
    if (new RegExp("(" + k + ")", "i").test(fmt)) {
      fmt = fmt.replace(
        RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    }
  }
  return fmt;
},

python 后台代码块

from io import BytesIO
import xlwt

# 导出Excel文件
def export_excel(request):
    city = request.POST.get('city')
    list_obj = [{'place': '广东', 'sum': '120', 'lng': 1, 'lat': 2}, {'place': '深圳', 'sum': '220', 'lng': 3, 'lat': 4}]
    # 设置HTTPResponse的类型
    response = HttpResponse(content_type='application/vnd.ms-excel')
    response['Content-Disposition'] = 'attachment;filename='+city+'.xls'
    """导出excel表"""
    if list_obj:
        # 创建工作簿
        ws = xlwt.Workbook(encoding='utf-8')
        # 添加第一页数据表
        w = ws.add_sheet('sheet1') # 新建sheet(sheet的名称为"sheet1")
        # 写入表头
        w.write(0, 0, '地名')
        w.write(0, 1, '次数')
        w.write(0, 2, '经度')
        w.write(0, 3, '纬度')
        # 写入数据
        excel_row = 1

        for obj in list_obj:
            name = obj['place']
            sum = obj['sum']
            lng = obj['lng']
            lat = obj['lat']
            # 写入每一行对应的数据
            w.write(excel_row, 0, name)
            w.write(excel_row, 1, sum)
            w.write(excel_row, 2, lng)
            w.write(excel_row, 3, lat)
            excel_row += 1
        # 写出到IO
        output = BytesIO()
        ws.save(output)
        # 重新定位到开始
        output.seek(0)
        response.write(output.getvalue())
    return response
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/958785.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号