在处理excel数据时发现了xlwt的局限性–不能写入超过65535行、256列的数据(因为它只支持Excel 2003及之前的版本,在这些版本的Excel中行数和列数有此限制),这对于实际应用还是不够的。为此经过一番寻找发现了一个支持07/10/13版本Excel的openpyxl,虽然功能很强大,但是操作起来感觉没有xlwt方便。
Python Excel操作之xlwt创建表格:
#Python Excel操作之xlwt创建表格 import xlwt #新建一个Excel文件(只能通过新建写入) data=xlwt.Workbook() #新建一个工作表 table=data.add_sheet('name') #写入数据到A1单元格 #初始化样式 style=xlwt.XFStyle() style1=xlwt.XFStyle() borders= xlwt.Borders() borders.left= 1 borders.right= 1 borders.top= 1 borders.bottom= 1 #为样式创建字体 font=xlwt.Font() #指定字体名字 font.name='Times New Roman' #字体加粗 font.bold=True #将该font设定为style的字体 style.font=font style.borders=borders style1.borders = borders table.write(5,0,u'Python Excel操作之xlwt创建表格',style) tabletitle=['姓名','年龄','职业'] tableA=['张三','李四','王五','麻子'] tableB=['30','28','18','26'] tableC=['工程师','学生','学生','老师'] for i in range(0,len(tabletitle)): table.write(0,i,tabletitle[i],style) for j in range(0, len(tableA)): table.write(j+1, 0, tableA[j],style1) for k in range(0, len(tableB)): table.write(k+1, 1, tableB[k],style1) for l in range(0, len(tableC)): table.write(l+1, 2, tableC[l],style1) #注意:如果对同一个单元格重复操作,会引发overwrite Exception,想要取消该功能,需要在添加工作表时指定为可覆盖,像下面这样 #table=data.add_sheet('name',cell_overwrite_ok=True) #保存文件 data.save('test.xls') #这里只能保存扩展名为xls的,xlsx的格式不支持
运行结果:
评论