Django服务端读取excel文件并且传输到接口

 

    path_name = "opboss_download_" + str(int(time.time())) + ".csv"
    print(path_name)

    write = Write_excel(path_name=path_name, sheet="opboss")

    data = ctx.get("data")
    for d in data:
        darr = []
        darr.append(d.get("asrtime"))
        darr.append(d.get("app_id"))
        darr.append(d.get("app_name"))
        darr.append(d.get("asrdevicetype"))
        darr.append(d.get("asrdevicetypename"))
        darr.append(d.get("asrdeviceid"))
        darr.append(d.get("asr"))
        darr.append(d.get("tts"))
        darr.append(d.get("nlp"))
        darr.append(d.get("intent"))
        write.add_content(darr)

    write.write_now()

    def file_iterator(file_name, chunk_size=512):
        with open(file_name, 'rb') as f:
            while True:
                c = f.read(chunk_size)
                if c:
                    yield c
                else:
                    break

    response = StreamingHttpResponse(file_iterator(path_name))
    response["Content-Type"] = "application/octet-stream"
    response["Content-Disposition"] = 'attachment;filename="{0}"'.format(path_name)

    return response

 

参考:https://www.jianshu.com/p/2ce715671340

 

前端vue处的实现方法:

      <a href="javascript:;" class="btn"  @click="getDownloadDataOrNot">点击下载</a>
// 限制数据导出条数,超出一万条范围不让导出
    getDownloadDataOrNot(){
      if (this.total > 10000){
        alert("不好意思,你要导的数据超过1万条,请缩小导出范围,谢谢合作!")
      }else {
        this.getDownloadData(this.deviceid, this.page, this.size, this.startdate, this.enddate, this.app_id, this.intent, this.device_type_id);
      }
    },

 

大致是上面这样,如有错误,还请大虾们指教!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值