django使用xlwt导出excel文件实例代码
本文研究的主要是记录一下下导出的方法,并没有做什么REST处理和异常处理。
维护统一的style样式,可以使导出的数据更加美观。
defexport_excel(request):
#设置HttpResponse的类型
response=HttpResponse(content_type='application/vnd.ms-excel')
response['Content-Disposition']='attachment;filename=user.xls'
#new一个文件
wb=xlwt.Workbook(encoding='utf-8')
#new一个sheet
sheet=wb.add_sheet(u'人员表单')
#维护一些样式,style_heading,style_body,style_red,style_green
style_heading=xlwt.easyxf("""
font:
nameArial,
colour_indexwhite,
boldon,
height0xA0;
align:
wrapoff,
vertcenter,
horizcenter;
pattern:
patternsolid,
fore-colour0x19;
borders:
leftTHIN,
rightTHIN,
topTHIN,
bottomTHIN;
"""
)
style_body=xlwt.easyxf("""
font:
nameArial,
boldoff,
height0XA0;
align:
wrapon,
vertcenter,
horizleft;
borders:
leftTHIN,
rightTHIN,
topTHIN,
bottomTHIN;
"""
)
style_green=xlwt.easyxf("pattern:patternsolid,fore-colour0x11;")
style_red=xlwt.easyxf("pattern:patternsolid,fore-colour0x0A;")
fmts=[
'M/D/YY',
'D-MMM-YY',
'D-MMM',
'MMM-YY',
'h:mmAM/PM',
'h:mm:ssAM/PM',
'h:mm',
'h:mm:ss',
'M/D/YYh:mm',
'mm:ss',
'[h]:mm:ss',
'mm:ss.0',
]
style_body.num_format_str=fmts[0]
#写标题栏
sheet.write(0,0,'姓名',style_heading)
sheet.write(0,1,'英文名',style_heading)
sheet.write(0,2,'职位',style_heading)
sheet.write(0,3,'公司电话',style_heading)
sheet.write(0,4,'手机',style_heading)
sheet.write(0,5,'QQ',style_heading)
sheet.write(0,6,'MSN',style_heading)
sheet.write(0,7,'Email',style_heading)
sheet.write(0,8,'办公地点',style_heading)
sheet.write(0,9,'部门',style_heading)
sheet.write(0,10,'人员状态',style_heading)
#写数据
row=1
forusainemployesInfo.objects.all():
sheet.write(row,0,usa.name,style_body)
sheet.write(row,1,usa.eName,style_body)
sheet.write(row,2,usa.postion,style_body)
sheet.write(row,3,usa.cPhone,style_body)
sheet.write(row,4,usa.pPhone,style_body)
sheet.write(row,5,usa.qq,style_body)
sheet.write(row,6,usa.msn,style_body)
sheet.write(row,7,usa.email,style_body)
sheet.write(row,8,usa.offAreas,style_body)
sheet.write(row,9,usa.depart,style_body)
ifint(usa.status)==1:
sheet.write(row,10,'在职',style_green)
else:
sheet.write(row,10,'离职',style_red)
row=row+1
#写出到IO
output=StringIO.StringIO()
wb.save(output)
#重新定位到开始
output.seek(0)
response.write(output.getvalue())
returnresponse
总结
以上就是本文关于django使用xlwt导出excel文件实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!