在处理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的格式不支持
运行结果: