整个过程是我将列表传递给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
要确保数字在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
相关问题 更多 >
编程相关推荐