Python 使用 xlwings 操作Excel
上一篇 / 下一篇 2021-09-30 10:23:24 / 个人分类:Python
Python xlwings 读取 写入 修改 操作Excel
xlwings比起xlrd、xlwt和xlutils,xlwings可豪华多了,它具备以下特点:
2FM@x*zgL F:k Y I0- xlwings能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改
B1JS0\7M7^{;L)[0 - 可以和matplotlib以及pandas无缝连接,支持读写numpy、pandas数据类型,将matplotlib可视化图表导入到excel中。51Testing软件测试网q)y@"_4[v2L+g1]
- 可以调用Excel文件中VBA写好的程序,也可以让VBA调用用Python写的程序。
- 开源免费,一直在更新
官网地址:https://www.xlwings.org/51Testing软件测试网9w9r!X MMA,lMa
官方文档:https://docs.xlwings.org/en/stable/api.html
a5{"~k4MuX&e04.1 pip安装xlwings
pipinstallxlwings
4.2 基本操作
引入库51Testing软件测试网 m3[Qb]'j9d
importxlwingsasxw
打开Excel程序,默认设置:程序可见,只打开不新建工作薄51Testing软件测试网;l9m.Xb!R p
app=xw.App(visible=True,add_book=False)#新建工作簿 (如果不接下一条代码的话,Excel只会一闪而过,卖个萌就走了)wb=app.books.add()
打开已有工作簿(支持绝对路径和相对路径)51Testing软件测试网 CJQ t-^C5X
wb=app.books.open('example.xlsx')#练习的时候建议直接用下面这条#wb = xw.Book('example.xlsx')#这样的话就不会频繁打开新的Excel
保存工作簿51Testing软件测试网Zzacps6J+l4R+_
wb.save('example.xlsx')
退出工作簿(可省略)51Testing软件测试网4me#no:k#]
wb.close()
退出Excel
!~.[lwUSI-KL0app.quit()
三个例子:51Testing软件测试网Sxu9Q sk
(1)打开已存在的Excel文档51Testing软件测试网N5e5E.[xt C.m#R
# 导入xlwings模块importxlwingsasxw# 打开Excel程序,默认设置:程序可见,只打开不新建工作薄,屏幕更新关闭app=xw.App(visible=True,add_book=False)app.display_alerts=Falseapp.screen_updating=False# 文件位置:filepath,打开test文档,然后保存,关闭,结束程序filepath=r'g:\Python Scripts\test.xlsx'wb=app.books.open(filepath)wb.save()wb.close()app.quit()
(2)新建Excel文档,命名为test.xlsx,并保存在D盘51Testing软件测试网yjp*Ob
importxlwingsasxwapp=xw.App(visible=True,add_book=False)wb=app.books.add()wb.save(r'd:\test.xlsx')wb.close()app.quit()
(3)在单元格输入值51Testing软件测试网Z3b*iM{(e
新建test.xlsx,在sheet1的第一个单元格输入 “人生” ,然后保存关闭,退出Excel程序。51Testing软件测试网!@j L"w)n
importxlwingsasxwapp=xw.App(visible=True,add_book=False)wb=app.books.add()# wb就是新建的工作簿(workbook),下面则对wb的sheet1的A1单元格赋值wb.sheets['sheet1'].range('A1').value='人生'wb.save(r'd:\test.xlsx')wb.close()app.quit()
打开已保存的test.xlsx,在sheet2的第二个单元格输入“苦短”,然后保存关闭,退出Excel程序
4?6?AYtF^0importxlwingsasxwapp=xw.App(visible=True,add_book=False)wb=app.books.open(r'd:\test.xlsx')# wb就是新建的工作簿(workbook),下面则对wb的sheet1的A1单元格赋值wb.sheets['sheet1'].range('A1').value='苦短'wb.save()wb.close()app.quit()
掌握以上代码,已经完全可以把Excel当作一个txt文本进行数据储存了,也可以读取Excel文件的数据,进行计算后,并将结果保存在Excel中。51Testing软件测试网a#YP5n:r/T7J
4.3 引用工作薄、工作表和单元格
(1)按名字引用工作簿,注意工作簿应该首先被打开
3d9r)M"cR G/D(^0wb=xw.books['工作簿的名字‘]
(2)引用活动的工作薄