首页 > 解决方案 > Django 对象和 openpyxl 单元格。如何设置单元格值,如 django 对象字段的值?

问题描述

我必须编写一段代码,从 django 数据集(几个模型)生成 xlsx 报告。报告的框架比通常的 x 行 y 列具有更困难的结构(一些单元格是统一的)。它应该是这样的: 在此处输入图像描述

所以我写了视图函数:

from cut.models import *
from django.http import HttpResponse
from openpyxl.workbook import Workbook
from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font

def get_report(request):

    rent_test = Renters.objects.all

    response = HttpResponse(
        content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
    )
    response['Content-Disposition'] = 'attachment; filename=FORM_1-IL.xlsx'.format()
    workbook = Workbook()

    worksheet = workbook.active
    worksheet.title = 'A_REPORT'

    worksheet.merge_cells('A2:A5')
#...
    worksheet.merge_cells('M4:M5')

    worksheet['A2'].value = 'name of forestry'
#...etc.
    columns = [
    'only_one_column'
    ]
    row_num = 1

    for col_num, column_title in enumerate(columns, 1):
        cell = worksheet.cell(row=row_num, column=col_num)
        cell.value = column_title


    workbook.save(response)

    return response

所以这一切都是可以理解和简单的。但是我如何使用 django 字段?我希望将它们转移到相对单元格(字段值而不是红色字体“字段值”

标签: pythondjangoopenpyxl

解决方案


推荐阅读