同理,通过pip install xlwt,ipip install xlutils完成xlwt库和xlutils库的导入,就可以放心使用了。
以上库存在的不足:
1、三个库分别有各自的功能,一般需要同时使用才能满足实际使用,用起来比较麻烦。
2,xlwt库和xlutils库写入和修改操作,都只能保存为.xls格式,若保存为.xlsx格式,则打开文件时会提示格式错误。
3、写入操作后,未保存文件时读取不到刚写入的数据,读取的还是未写入之前的数据,只有保存后在读取才能得到正确结果。
4、openpyxl库用opengyxl库操作excel,则能轻松解决上面三个库的不足,且代码更符合excel使用习惯。
import openpyxl wb = openpyxl.load_workbook("e:\dest.xlsx") sht = wb['sy'] print(sht['a2'].value) sht['a2'].value = "新名字" print(sht['a2'].value) wb.save("e:\dest.xlsx")
代码解析:
1、导入openpyxl库
2、打开e:\test.xls文件,wb代表该打开的工作薄
3、sht代表wb工作薄里名字为sy的表单
4、读取输出sht表单a2单元格的内容
5、给sht表单a2单元格写入数据“新名字”
6、再次读取输出sht表单a2单元格的内容,会发现本次输出的就是刚才写入的"新名字"
7、保存文件,不更改文件名。
不足之处:不能操作.xls文件。
5、xlsxwriter库:可在excel文件里写入并设置图表的库,有图表要求的,后期专题学习。6、com调用Excel的API库:通过COM调用,实现Python对excel操作的方法,写法与VBA非常相似,个人认为还不如python的openpyxl好用,且设置过程相对复杂,以后有机会再介绍。理论结合实际,我们用一个真实案例来体验一下python处理excel数据的感觉:文件“删除最小值.xlsx”中,(A:D)四列数据,希望删除每行的最小值,保留三个值,写入到后面(F:H)列中。
删除最小值.xlsx
1、导入openpyxl库来处理:
import openpyxl
2、打开文件,定义表单:
wb = openpyxl.load_workbook("e:\删除最小值.xlsx") sht = wb['数据']
3、数据处理(请自动忽略粗糙的逻辑思路)
for i in range(2, 8): minnum = sht.cell(i,1).value if sht.cell(i, 2).value < minnum: minnum = sht.cell(i,2).value if sht.cell(i,3).value < minnum: minnum = sht.cell(i,3).value if sht.cell(i, 4).value < minnum: minnum = sht.cell(i, 4).value k = 0 for j in range(1, 5): if sht.cell(i, j).value > minnum: k = 1 sht.cell(i, k 5).value = sht.cell(i, j).value print(sht.cell(i, k 5).value, end=' ') print()
4、保存文件:
wb.save("e:\python\删除最小值.xlsx")
运行后通过print代码在终端显示了结果:
打开表格,数据已经完成了填入:
总结:
总的来说,用openpyxl库让python处理excel还是比较容易的,符合python容易上手的特点,让大家把精力多放在问题解决思路上,而不是浪费在学习代码写法规则上。