xlwings
xlwings模块简介
xlwings模块是python中对excel进行操作的一个模块。相对于其他支持excel操作的模块来讲,xlwings是目前最为全能,且运行效率较高,即综合评分较高的一个模块,且支持win和mac os系统。
主要用法介绍
在介绍用法之前,先对模块中的对象做一下简单描述
- App :对应的就是excel程序
- Book :对应为excel文件(即工作簿workbook)
- Sheet :对应的excel文件中每个页
- Range:对应的就是每个sheet里的单元格
- N个Excel程序则由apps表示,N个工作簿由books表示,以此类推。可以通过xlwings.App()/xlwings.Book()/xlwings.Sheet()/
以上将excel中的对象划分上下级关系,要调用任一级别的对象,必须先要有父级的对象,比如要打开一个workbook,就必须要先有app_obj,然后对这app_obj操作workbook。这与实际的excel操作逻辑其实是一致,即要打开一个workbook,必须先要运行一个excel程序。
同时要注意区分App和apps,Book和books的区别
App
打开/关闭excel程序
- 创建一个app对象:
运行程序会打开一个excel程序,但是不会打开book
app_obj = xlwings.App()
- 关闭excel程序
app_obj.quit()
- app的一些属性
当一些功能不需要的时候,可以通过相关属性关闭,提高程序运行效率
# 关闭显示报警(默认)
app_obj.display_alerts=False
# 关闭屏幕更新(默认)
app_obj.screen_updating=False
Book(工作簿)
工作簿的操作,都基于app对象。
常用方法
- xlwings.books.active ->引用激活的
- book_obj = app_obj.books[‘bookName’] -> 引用
- app_obj.books.add() -> 新增
- app_obj.books.save(filePath) -> 保存(filePath为空,则保存在当前路径)
- app_obj.books.open(filePath) -> 打开
- app_obj.books.activate() -> 激活该工作簿
属性
- book_obj.name : 返回工作簿的名称
- book_obj.fullname : 返回工作簿的绝对路径
示例
import xlwings
app_obj = xlwings.App()
for i in range(1, 3):
book_obj = app_obj.books.add()
book_obj.save('new%d.xlsx' % i)
book_name = book_obj.name
book_path = book_obj.fullname
print('%s创建并保存成功,路径为%s' % (book_name,book_path))
book_obj.close()
# new1.xlsx创建并保存成功,路径为/Users/apple/xlwings/new1.xlsx
# new2.xlsx创建并保存成功,路径为/Users/apple/xlwings/new2.xlsx
Sheet(工作页)
工作页的操作
常用方法
- sheet_obj=app_obj.books[‘工作簿名称’].sheets[‘sheet的名称’] ->引用工作页
- sheet_obj.activate() -> 激活工作页
- sheet_obj.clear() -> 清除sheet的内容和格式
- sheet_obj.clear_contents() -> 清除sheet的内容,保留格式
- sheet_obj.delete() -> 删除工作页
示例
import xlwings
app_obj = xlwings.App()
book_obj = app_obj.books.open('new.xlsx'