这是一个用来导出excel数据的接口,在postman里返回值为一堆乱码,那些乱码save response->save as file自动变为.xls文件.
如果日期在数据库内直接输入,则不会导出日期(空白值),如果由接口创建则可以.
@api_view(['POST'])@csrf_exemptdef export(request):'''导出:param request::return:'''# 指定数据类型response = HttpResponse(content_type='application/ms-excel')# response = HttpResponse(content_type='text/csv')# 设置文件名称response['Content-Disposition'] = 'attachment; filename="constant_info.xls"'# 创建工作簿wb = xlwt.Workbook(encoding='utf-8')# 创建表ws = wb.add_sheet('Menu')row_num = 0font_style = xlwt.XFStyle()# 二进制font_style.font.bold = True# 表头内容columns = ['constant_info_id', 'constant_info', 'constant_info_creation_time']# 写进表头内容for col_num in range(len(columns)):ws.write(row_num, col_num, columns[col_num], font_style)# Sheet body, remaining rowsfont_style = xlwt.XFStyle()# 获取数据库数据rows = constant_info.objects.values_list('constant_info_id', 'constant_info','constant_info_creation_time')# 遍历提取出来的内容for row in rows:print(rows)row_num += 1# 逐行写入Excelfor col_num in range(len(row)):ws.write(row_num, col_num, row[col_num], font_style)print(row_num, col_num, row[col_num])wb.save(response)return response
