zoukankan      html  css  js  c++  java
  • vue下载xls文件 (后端django)

    vue下载xls文件 (后端django)

    • 前端vue

      async exportOrder () {
            if (this.batchEditOrderStatus.length === 0) {
              this.$message.warning('您当前什么都没有选')
              return
            }
            // {responseType: 'blob'} 的设置很重要否则无法下载
            axios.post('export_order/', {'data': this.batchEditOrderStatus}, {responseType: 'blob'}).then((res) => {
              // 创建标签a
              const link = document.createElement('a')
              let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'})
              link.style.display = 'none'
              link.href = URL.createObjectURL(blob)
              let num = ''
              // 生成随机数
              for (let i = 0; i < 10; i++) {
                num += Math.ceil(Math.random() * 10)
              }
              link.setAttribute('download', '航海者有限公司订单信息_' + num + '.xlsx')
              document.body.appendChild(link)
              link.click()
              // 删除标签
              document.body.removeChild(link)
            })
          }
      
    • django

      def send_csv(request):
          if request.method == "POST":
              result_str = request.body.decode("utf-8")
              result_dict = json.loads(result_str)
              order_list = result_dict.get("data")
              try:
                  # csv 函数为自定义,生成excel的格式
                  ws = csv(order_list)
                  sio = BytesIO()
                  ws.save(sio)
                  sio.seek(0)
                  str_time = fmt_time()
                  # 定义返回数据类型
                  response = HttpResponse(sio.getvalue(), content_type="application/vnd.ms-excel", )
                  # 定义文件名。
                  response["Content-Disposition"] = "attachment; filename=%s" % (
                      urlquote(DEFAULT_FILENAME % (str_time,)),
                  )
                  response.write(sio.getvalue())
                  return response
              except Exception as e:
                  return JsonResponse(
                      {"code":1002, "msg":"生成xls失败", "data":""}
                  )
          else:
              return JsonResponse(
                  {"code": 1008, "msg": "请求方式有问题", "data": ""}
              )
      
  • 相关阅读:
    防火墙透明模式
    HP管理工具System Management Homepage安装配置
    kbmmw 中JSON 中使用SQL 查询
    kbmmw 中JSON 操作入门
    第一个kbmmw for Linux 服务器
    kbmmw 5.02发布
    kbmmw 5.01 发布
    使用delphi 10.2 开发linux 上的Daemon
    使用unidac 在linux 上无驱动直接访问MS SQL SERVER
    使用delphi 10.2 开发linux 上的webservice
  • 原文地址:https://www.cnblogs.com/xujunkai/p/12589294.html
Copyright © 2011-2022 走看看