django-通过查询数据库导出excel数据表格


后端代码如下:
1 def export_excel(request): 2 """导出记录的视图""" 3 device_li = DeviceInfo.objects.order_by("-update_data") #查询库里所有数据 4 5 # 设置HTTPResponse的类型 6 response = HttpResponse(content_type='application/vnd.ms-excel') 7 response['Content-Disposition'] = 'attachment;filename=device_data.xls' 8 """导出excel表""" 9 if device_li: 10 # 创建工作簿 11 ws = xlwt.Workbook(encoding='utf-8') 12 # 添加第一页数据表 13 w = ws.add_sheet('sheet1') # 新建sheet(sheet的名称为"sheet1") 14 # 写入表头 15 w.write(0, 0, u'所属中心') 16 w.write(0, 1, u'设备名称') 17 w.write(0, 2, u'设备系统') 18 w.write(0, 3, u'厂商') 19 w.write(0, 4, u'系统版本') 20 w.write(0, 5, u'资产编号') 21 w.write(0, 6, u'手机号码') 22 w.write(0, 7, u'出库领取人') 23 w.write(0, 8, u'使用人') 24 w.write(0, 9, u'创建人') 25 # 写入数据 26 excel_row = 1 27 for obj in device_li: 28 center_name = obj.center_name 29 device_name = obj.device_name 30 device_system = obj.device_system 31 device_factory = obj.device_factory 32 device_system_version = obj.device_system_version 33 device_asset_number = obj.device_asset_num 34 device_phone_number = obj.device_phone_num 35 device_user = obj.device_user 36 device_recipient = obj.device_recipient 37 creator = obj.creator 38 # created_date = obj.create_date 39 # modified_date = obj.update_data 40 w.write(excel_row, 0, center_name) 41 w.write(excel_row, 1, device_name) 42 w.write(excel_row, 2, device_system) 43 w.write(excel_row, 3, device_factory) 44 w.write(excel_row, 4, device_system_version) 45 w.write(excel_row, 5, device_asset_number) 46 w.write(excel_row, 6, device_phone_number) 47 w.write(excel_row, 7, device_recipient) 48 w.write(excel_row, 8, device_user) 49 w.write(excel_row, 9, creator) 50 excel_row += 1 51 # 写出到IO 52 output = BytesIO() 53 ws.save(output) 54 # 重新定位到开始 55 output.seek(0) 56 response.write(output.getvalue()) 57 return response
posted on 2021-09-25 18:26 cherry_ning 阅读(932) 评论(0) 收藏 举报
浙公网安备 33010602011771号