# 准备写入到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
Django 返回文档Dataframe=>csv
于 2024-05-24 12:57:23 首次发布