深入理解Python xlwings库的使用

深入理解Python xlwings库的使用

  • 个人感受xlwings的使用
  • xlwings基本思路

个人感受xlwings的使用

xlwings是目前看来操作excel最快速、做的比较完善的一个库,优化很好,调用方式非常灵活,方便,使用简单,功能还算强大,不过使用起来还是有挺多功能没有实现(比如插入一行或删除一行数据),不过可以通过api连接到pywin32库里去实现这部份功能,不过这部份的使用缺乏相关文档,对于不熟悉pywin32的同学就比较吃力。好在xlwings官方的文档相当给力,制作精良,大部分被汉化,对于xlwings的自身使用可以完全自学,不成问题。同时xlwings支持在excel成为一个插件,直接可以在excel里调用python程序(RunPython),也可以直接调用python函数(UDFs),这方面教程里讲的很详细。

xlwings基本思路

xlwings里的Apps代表excel实例的集合,Apps里的App就是一个excel的实例,apps是Apps这个类的实例,也是打开的Apps的集合,使用apps就可以实现excel实例集的快速调用了

import xlwings as xw

xw.apps

可以用xw.apps.keys()来查看excel实例的kid(相当于每个实例的索引)

同理,那么Books就是excel里的工作薄的集合,Book就是一个工作薄的实例,books就是快速调用打开的Books的实例,使用books就可以实现excel工作薄集的快速调用了。

import xlwings as xw

xw.books

#xw.books是最常用的调用形式
#最常用打开工作薄方法
wb = xw.books.open(filepath)#filepath是excel的路径
#新建一个工作薄方法
wb = xw.books.add()#该方法相当于xw.Book()
#获取当前活动工作薄
wb = xw.books.active

其实xw.Book与xw.books的区别就在于,前者是创建一个工作薄实例,后者是在活动工作薄寻找一个实例。

再补充一点,可以用wb.sheets方法去获得xw.sheets同样的实例集,这样就可以直接调用Sheet里的方法了。这也是最常用的调用形式。

Sheets同理Apps和Books,也可用xw.sheets。形式与books相同。

但是Ranges是pass,没有内容,不过xw.Range是可以直接用的,xw.Range自动寻找工作薄和工作表的实例

import xlwings as xw

rng = xw.Range('A1')
#当然还有如下使用方法
xw.Range('A1:C3')
xw.Range((1,1))
xw.Range((1,1), (3,3))
xw.Range('NamedRange')
xw.Range(xw.Range('A1'), xw.Range('B2'))

至于每个xw.books,xw.sheets或xw.Range()的实例方法和属性,可以在其他教程里找到。每个实例都可以调用api去调用win32com的方法,这个就需要去探究了,其实xlwings的方法就是win32com里的方法做的一层封装。

你可能感兴趣的:(深入理解Python xlwings库的使用)