Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数据导出到django应用程序的excel时发生ValueError_Python_Django_Excel - Fatal编程技术网

Python 将数据导出到django应用程序的excel时发生ValueError

Python 将数据导出到django应用程序的excel时发生ValueError,python,django,excel,Python,Django,Excel,我正试图写一些代码,将一些数据从网站导出到excel工作表。这是我试图用Django重写整个网站的一部分。下面是我为导出编写的脚本 def national_proposal_export_xlsx(modeladmin, request, queryset): import openpyxl from openpyxl.cell import get_column_letter response = HttpResponse(content_type='applicat

我正试图写一些代码,将一些数据从网站导出到excel工作表。这是我试图用Django重写整个网站的一部分。下面是我为导出编写的脚本

def national_proposal_export_xlsx(modeladmin, request, queryset):
    import openpyxl
    from openpyxl.cell import get_column_letter
    response = HttpResponse(content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
    response['Content-Disposition'] = 'attachment; filename=conference_proposals_export.xlsx'
    wb = openpyxl.Workbook()
    ws = wb.get_active_sheet()
    ws.title = "Conference_proposals"

    row_num = 0

    columns = [
        (u"Master", 15),
        (u"Code", 15),
        (u"Title", 70),
        (u"Begin Time", 15),
        (u"End Time", 15),
        (u"Event type", 15),
        (u"Status", 15),
        # (u"Published", 15),
        # (u"Up to date", 15),
    ]

    for col_num in range(len(columns)):
        c = ws.cell(row=row_num + 1, column=col_num + 1)
        c.value = columns[col_num][0]
        # c.style.font.bold = True
        ws.column_dimensions[get_column_letter(col_num+1)].width = columns[col_num][1]

    for obj in queryset:
        row_num += 1
        row = [
            obj.master,
            obj.code,
            obj.title,
            obj.begin_time,
            obj.end_time,
            obj.event_type,
            obj.status,
            # obj.published,
            # obj.up_to_date,
        ]

        for col_num in range(len(row)):
            c = ws.cell(row=row_num + 1, column=col_num + 1)
            c.value = row[col_num]
            c.style.alignment.wrap_text = True

    wb.save(response)
    return response
但由于某些原因,我得到了以下错误:

ValueError位于/admin/events/nationalconferenceproposal/
无法将9000476 |测试会话001(草稿)转换为Excel
申请方式:邮寄
请求URL:http://localhost:8000/admin/events/nationalconferenceproposal/
Django版本:1.7.3
异常类型:ValueError
异常值:
无法将9000476 |测试会话001(草稿)转换为Excel 异常位置:/Users/dthota/Code/venvs/planning/lib/python3.4/site-packages/openpyxl/cell/cell.py in _bind_value,第217行 Python可执行文件:/Users/dthota/Code/venvs/planning/bin/Python Python版本:3.4.3


它说错误在最后一个for循环中的
c.value=row[col\u num]
中。但我不明白

我知道这是一个老问题,但我只是在为一个类似的问题而挣扎。对我来说,解决方案是将行[col_num]强制转换为字符串:

c.value = str(row[col_num])
请注意,数据随后会保存为excel工作簿上的文本,因此,如果要使用数据进行计算等,可能需要其他内容