码迷,mamicode.com
首页 > 编程语言 > 详细

Python生成报表

时间:2019-07-05 16:47:51      阅读:348      评论:0      收藏:0      [点我收藏+]

标签:instance   code   sheet   mime类型   filename   attr   优化   下载   生成   

  1. excel

    def export_teachers_excel(request):
     # 创建工作簿
     wb = xlwt.Workbook()
     # 添加工作表
     sheet = wb.add_sheet('老师信息表')
     # 查询所有老师的信息(注意:这个地方稍后需要优化)
     queryset = Teacher.objects.all()
     # 向Excel表单中写入表头
     colnames = ('姓名', '介绍', '好评数', '差评数', '学科')
     for index, name in enumerate(colnames):
         sheet.write(0, index, name)
     # 向单元格中写入老师的数据
     props = ('name', 'detail', 'good_count', 'bad_count', 'subject')
     for row, teacher in enumerate(queryset):
         for col, prop in enumerate(props):
             value = getattr(teacher, prop, '')
             if isinstance(value, Subject):
                 value = value.name
             sheet.write(row + 1, col, value)
     # 保存Excel
     buffer = BytesIO()
     wb.save(buffer)
     # 将二进制数据写入响应的消息体中并设置MIME类型
     resp = HttpResponse(buffer.getvalue(), content_type='application/vnd.ms-excel')
     # 中文文件名需要处理成百分号编码
     filename = quote('老师.xls')
     # 通过响应头告知浏览器下载该文件以及对应的文件名
     resp['content-disposition'] = f'attachment; filename="{filename}"'
     return resp

Python生成报表

标签:instance   code   sheet   mime类型   filename   attr   优化   下载   生成   

原文地址:https://www.cnblogs.com/liuweiqc/p/11139159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!