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

The Zero's '0' are getting removed automatically when i am converting my HTML template to excel sheets.

整个过程是我将列表传递给 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

我的模板是sample_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 %}

数据库中有两个字段,即personal_number和family_uid,其示例数据为:-

personal_number 000029
family_uid 0000290001

但是当 excel sheet 下载时,这些数字会发生变化。

personal_number 29
family_uid 290001

为确保数字在 Excel 中被视为文本而不是数字数据,请将数字放在字符串中并在写入 Excel 之前添加一个 ' 撇号。因此,与其只写 000029,不如写 '000029。在 Excel 中,这将显示为 000029。撇号不显示; Excel 只是将其用作标志,指示应将其视为文本。

或者,您可以在写入之前将单元格的格式更改为文本,在这种情况下,您不必在前面加上 '。不幸的是,我不知道如何从 Python 开始。

尝试使用xlwt,它对我有用,我也遇到了同样的问题。通过使用这个你不需要任何 html 模板,python 本身会将你的整数转换为字符串并将结果写入 excel sheet。 关注这个 link。 http://djangotricks.blogspot.in/2013/12/how-to-export-data-as-excel.html