Django 返回文档Dataframe=>csv

# 准备写入到IO中
output = BytesIO()  # 创建一个 BytesIO 对象,用于将数据写入内存中

# 使用 openpyxl 引擎创建 ExcelWriter 对象
writer = pd.ExcelWriter(output, engine='openpyxl')

# 将 DataFrame 写入到 ExcelWriter 对象
data.to_excel(writer, index=False, sheet_name='Sheet1')  # 将数据写入到 ExcelWriter 对象中的一个名为"Sheet1"的工作表中

wb = Workbook()  # 生成一个工作簿(即一个Excel文件)
wb.encoding = 'utf-8'  # 设置工作簿的编码格式为 utf-8

output.seek(0)  # 重新定位到开始,确保从头开始读取数据
writer.save()  # 将Excel文件内容保存到IO中

# 设置HttpResponse的类型
response = HttpResponse(content_type='text/csv')  # 创建一个 HTTP 响应对象,设置内容类型为 text/csv
response.write(codecs.BOM_UTF8)  # 写入 UTF-8 BOM,用于解决 Excel 中文乱码的问题

file_name = fileName  # 设置文件名
file_name = urlquote(file_name)  # 使用urlquote()方法解决中文无法使用的问题
response.content = output.getvalue()  # 将Excel文件内容写入HTTP响应的内容中
response['Content-Disposition'] = 'attachment; filename=%s' % file_name  # 设置响应头,告知浏览器以附件形式下载文件

# 返回响应对象
return response

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值