我是靠谱客的博主 苹果白云,最近开发中收集的这篇文章主要介绍Django导出功能导出Excel导出Word,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

导出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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部