概述
导出Excel
- 使用openpyxl生成Excel并导出下载``
- Example:
import openpyxl from django.utils.http import urlquote # 下载文件中文需要编码需要使用这个 def exportToExcel(request): # 创建一个WorkBook wb = openpyxl.Workbook() # 创建一个Sheet sheet = wb.active # 往Excel的Sheet填充内容 sheet.cell(1, 1, '被审计单位') sheet.cell(1, 2, '审计年度') sheet.cell(1, 3, '审计组长/主审') sheet.cell(1, 4, '单位预算代码') # 设置响应头 response = HttpResponse(content_type='application/msexcel') # 设置下载文件编码,需要使用urlquote filename = urlquote('中文.xlsx') response[ 'Content-Disposition'] = f"attachment;filename*=utf-8'zh_cn'{filename}" # 保存Excel到相应中 wb.save(response) return response
- django中编写下载文件的代码时如果下载的文件名中包含中文,需要做特别的处理,不然无法正常下载文件,在请求中中文需要被编码;在django中提供了一个函数处理中文的编码:
from django.utils.http import urlquote # 下载文件中文需要编码需要使用这个 filename = urlquote(filename) response['Content-Disposition'] = f'attachment;filename="{filename}"'
- 解决FireFox中下载中文文件的乱码:就是修改响应头中的内容加上*以及utf-8’zh_cn’这部分的内容
"Content-Disposition","attachment;filename*=utf-8'zh_cn'文件名.xx" # Django response['Content-Disposition'] = "attachment;filename*=utf-8'zh_cn'" + filename
导出Word
- django中导出word文件使用的库是python-docx;在进行word导出操作时,先生成一个word文件,在下载该word文件到本地,最后删除这个word文件,此时就有一个文件被使用无法删除的问题,解决方式是通过用一个list变量存储该文件的二进制字节字符串,然后删除源文件,利用该中间的list变量去完成下载的工作,传参给FileResponse
最后
以上就是苹果白云为你收集整理的Django导出功能导出Excel导出Word的全部内容,希望文章能够帮你解决Django导出功能导出Excel导出Word所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复