当我将HTML模板转换为excel工作表时,零的“0”将自动删除。

2024-09-29 19:34:20 发布

您现在位置:Python中文网/ 问答频道 /正文

整个过程是我将列表传递给Django中的html模板,如下所示:

def download_workbook(request):
    lists = family.objects.all()
    # your excel html format
    template_name = "sample_excel.html"

    response = render_to_response(template_name, {'lists': lists})
    # this is the output file
    filename = "sample.xls"

    response['Content-Disposition'] = 'attachment; filename='+filename
    response['Content-Type'] = 'application/vnd.ms-excel; charset=utf-16'
    return response

我的模板是示例_excel.html:-

PERSONNEL_NUMBERR   DEPENDT_FIRST_NAME1     DEPENDT_FAMILY_NAME DEPENDANT_TYPE  DEPENDT_BIRTH_DATE  DEPENDANT_SEQUENCE  FAMILY_ID
{% autoescape off %} {% for list in lists %}{{ str(list.member.personal_number) }}  {{ list.dependent_first_name1 }}    {{ list.dependent_family_name }}    {{ list.dependent_type }}   {{ list.dependent_birthdate }}  {{ list.dependent_sequence }}   {{ str(list.family_uid) }}
{% endfor %}{% endautoescape %}

数据库中有两个字段,即个人号码和家庭uid,其示例数据如下:-

personal_number 000029
family_uid 0000290001

但当excel表被下载时,这些数字就会改变。你知道吗

personal_number 29
family_uid 290001

Tags: name模板numberuidresponsehtmltemplatefilename
2条回答

要确保数字在Excel中被视为文本而不是数字数据,请在写入Excel之前,将数字放在字符串中并在前面加上'撇号。所以不要只写000029,你应该写'000029。在Excel中,这将显示为000029。撇号不显示;Excel只是将其用作标志,指示应将其视为文本。你知道吗

或者,您可以在写入单元格之前将单元格的格式更改为文本,在这种情况下,您不必预先添加'。不幸的是,我不知道如何从Python做到这一点。你知道吗

尝试使用xlwt,它对我有效,我也面临同样的问题。通过使用这个你不需要任何html模板,python本身将把你的整数转换成字符串,并将结果写入excel表格。 点击此链接。 http://djangotricks.blogspot.in/2013/12/how-to-export-data-as-excel.html

相关问题 更多 >

    热门问题