Django中如何用xlwt生成表格的方法步骤
同样是做表格,但是有些人的表格就做的很好看。融合了之前所学不同模块的知识,来讲讲Django中生成表格的特殊方法。
这里只是mark一下导出的方法,并没有做什么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生成表格的方法步骤的文章就介绍到这了,更多相关Djangoxlwt生成表格内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!