Django后台数据导出为excel并下载 您所在的位置:网站首页 系统中导出的excel无数据 Django后台数据导出为excel并下载

Django后台数据导出为excel并下载

2024-06-29 08:25| 来源: 网络整理| 查看: 265

功能要求:导出数据到制定好的excel的模板文件中 在这里插入图片描述 刚开始做项目,一边摸索一边做,搜了很多资料,踩了很多坑,记录一下 在模型的admin.py文件中定义函数和要导出的字段 中间注释的代码是没有测试成功的,请跳过

import openpyxl from django.http import HttpResponse import datetime from process_card_management.settings import BASE_DIR str_base = str(BASE_DIR) path = str_base + '/mytools/J2009002.xlsx' print(path) wb = openpyxl.load_workbook(path) # get sheet from workbook # sheet_list = wb.sheetnames # print(sheet_list) # create new sheet # new_sheet = wb.create_sheet('mysheet') # get sheet that already exists # ws = wb.get_sheet_by_name(wb['Sheet1']) # ws = wb['Sheet1'] # 获取活跃的sheet # sheet1 = wb.active # get cells from the sheet # print(ws['A1'].value) def export_model_as_excel(modeladmin, request, queryset): print(queryset, type(queryset)) response = HttpResponse(content_type='application/msexcel') response['Content-Disposition'] = 'attachment; filename={}.xlsx'.format(datetime.datetime.now()) ws = wb['Sheet1'] for obj in queryset: # 用户代码 ws.cell(row=3, column=4, value=obj.user_code) # 产品名称 ws.cell(row=3, column=9, value=obj.product_name) # 出货时间 ws.cell(row=3, column=13, value=str(obj.shipment_date.strftime(u'%Y年%m月%d日%H时'))) # 产品型号 ws.cell(row=4, column=4, value=obj.product_model_number) # 测量范围 ws.cell(row=4, column=9, value=obj.measuring_range) # 数量 ws['M4'].value = obj.quantity # 准确度 ws['P4'].value = obj.accuracy # 供电电源 ws['D5'].value = obj.power_supply # 输出信号 ws['I5'].value = obj.output_signal # 打印要求 ws['K6'].value = obj.print_content # 测量介质 ws['D6'].value = obj.measuring_medium # 密度(仅液位) ws['I6'].value = obj.density # 介质温度 ws['D7'].value = str(obj.medium_temperature_min) + '~' + str(obj.medium_temperature_max) # 补偿温度 ws['I7'].value = obj.compensation_temperature # 显示方式 ws['D8'].value = obj.display_mode # 电气接口 ws['D8'].value = obj.electrical_interface # 线长 ws['D9'].value = obj.line_length # 过程接口 ws['I9'].value = obj.process_interface # 接线方式 ws['D10'].value = obj.wiring_method # 其他特殊要求 ws['D11'].value = obj.special_instructions break wb.save(response) return response export_model_as_excel.short_description = u'导出为excel'

最后在模型管理类cardAdmin中添加

actions = [export_model_as_excel]


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有