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": ""} )
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库