导出EXCEL、CSV文件
导出csv:
# result_data:是需要导出数据(列表里套多个字段的) # 导出 import csv try: class Echo: def write(self, value): return value def _payload_iterator(header, body): use_header = [header[0].encode("utf-8-sig").decode()] use_header += header[1:] yield [h for h in use_header] for d in body: yield [d.get(h, "") for h in header] bf = Echo() data_hdr = list(result_data[0].keys()) # 表头字段 writer = csv.writer(bf) rsp = StreamingHttpResponse( (writer.writerow(r) for r in _payload_iterator(data_hdr, result_data)), content_type="text/csv", ) rsp["Content-Disposition"] = "attachment; filename*=UTF-8''{}.csv;".format( escape_uri_path("表名") ) return rsp except Exception as e: print("error", e) return JsonResponse( {"error": _("没有数据,下载失败")}, json_dumps_params={"ensure_ascii": False} )
导出excal:
import openpyxl import os wb = openpyxl.Workbook() ws = wb.active ws.append([h for h in fields]) for r in data_to_send: excel_ln = [] # 每一行的数据 for k in fields: this_field = r.get(k, "N/A") excel_ln.append(this_field) ws.append(excel_ln) fd = os.path.join("", "download") fn = "名字.xlsx") wb.save(os.path.join(fd, fn)) return FileResponse(open(os.path.join(fd, fn), "rb"), as_attachment=True)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现