引言
这是excel+python的第二篇的第一节。在讲了pandas的read_excel和to_excel后我们接下来讲xlwings
xlwings的一个重要的开发目标就是替代VBA,让python中主要的一些科学计算库能与excel进行更好的交互
有了xlwings后,python里面的list,dictionary,set,以及numpy中的n-array,pandas中的DataFrame,都能轻松的与excel互传数据
我们在前面几篇里面说到了,对于pandas来说excel扮演的只是数据源和结果展示平台两个角色
而xlwings像是粘合剂,把excel真正的与python,与python众多的科学计算库粘合在一起
那本篇作为xlwings系列的第一篇,就来讲一些基础的,讲主要的用法和功能做一个简要的介绍
正文
xlwings和VBA在各个方面都比较相似,用过VBA的同学应该知道,excel的各个组成部分(workbook,worksheet等)有一个层级关系,被称为Excel object model,具体的层级关系见下图:
图1
最顶层的是app,不知道各位同学在VBA里面有没有写过这个语句:
Application.ScreenUpdating = False
这个语句的意思是关闭execl的屏幕更新
这里的Application指的就是顶层的excel app
下面就是workbook,worksheet,range等,我们来看一个VBA语句:
msgbox ThisWorkbook.Worksheets("sj").Range("a1").value
我们可以看到里面展示的层级关系很直观
xlwings在操作excel的时候也是遵循这个层级关系
我们来看workbook这个层级;xlwings获取一个workbook对象有几种方式:
- xlwings.book(),这会新