
python操作excel主要用于xlrd和xlwt,即xlrd是读excel,xlwt是写excel的库。
python写作excel——xlwt
写excel的难点可能不是构建workbook本身,而是填写数据,但不在范围内。写excel的操作也存在难题,比如写
合并的单元格比较麻烦,另外还有不同的写入风格。这些要看源码才能研究透彻。
我"构思"了解以下sheet1,即使用xlwt实现的东西:
代码如下:
'''
设置单元格式样式
'''
defset_style(name,height,bold=False):
style=xlwt.XFStyle()#初始化风格
font=xlwt.Font()#风格创建字体
font.name=name#'TimesNewRoman'
font.bold=bold
font.color_index=4
font.height=height
#borders=xlwt.Borders()
#borders.left=6
#borders.right=6
#borders.top=6
#borders.bottom=6
style.font=font
#style.borders=borders
returnstyle
#写excel
defwrite_excel():
f=xlwt.Workbook()#创建工作簿
'''
创建第一个sheetet:
sheet1
'''
sheet1=f.add_sheet(u'sheeet1',cell_overwrite_ok=True)#创建sheet
row0=[u'业务',u'状态',u'北京',u'上海',u'广州',u'深圳',u'状态小计',u'合计']
column0=[u'机票',u'船票',u'火车票',u'汽车票',u'其它']
status=[u'预订',u'出票',u'退票',u'业务小计']
#生成第一行
foriinrange(0,len(row0):
sheet1.write(0,i,row0[i],set_style('TimesNewRoman',220,True))
#生成第一列和最后一列(合并4行)
i,j=1,0
whilei<4*len(column0)andj<len(column0):
sheet1.write_merge(i,i+三、0、0、column0[j],set_style('Arial',220,True))#第一列
sheet1.write_merge(i,i+三、七、七)#最后一列"合计"
i+=4
j+=1
sheet1.write_merge(21,21,0,1,u'合计',set_style('TimesNewRoman',220,True))
#生成第二列
i=0
whilei<4*len(column0):
forjinrange(0,len(status)):
sheet1.write(j+i+1,1,status[j])
i+=4
f.save('demo1.xlsx')#保存文件
if__name__='__main__':
#generate_workbook()
#read_excel()
write_excel()更多技术请关注Python视频教程。