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()#创建工作簿 ''' 创建第一个sheet: sheet1 ''' sheet1=f.add_sheet(u'sheet1',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+3,0,0,column0[j],set_style('Arial',220,True))#第一列 sheet1.write_merge(i,i+3,7,7)#最后一列"合计" 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()原文来自:https://www.py.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容