本节介绍win32com包使用的Excel对象模型。前面讲了,它们是对VBA所使用的Excel对象的COM组件封装,所以,在本质上这两个包使用的对象模型跟VBA使用的是一样的。
Excel对象及其层次结构
win32com包使用的Excel对象模型如图2-3所示。模型包含4大对象,即Application对象、Workbook对象、Worksheet对象和Range对象,分别表示Excel应用本身、工作簿、工作表和单元格(区域)。Workbooks是一个集合,包含当前Excel应用中的所有工作簿对象,Worksheets集合则包含当前工作簿中的所有工作表对象。
图2-3 Excel对象模型
用win32com创建Excel对象
使用win32com包,首先要导入它。下面在Python Shell窗口导入win32com包。
code.python
>>> import win32com.client as win32
创建一个Excel应用app,设置其Visible属性的值为True,使应用的窗口可见:
code.python
>>> app=win32.gencache.EnsureDispatch("excel.application")
>>> app.Visible=True
用Workbooks对象的Add方法创建一个工作簿对象bk:
code.python
>>> bk=app.Workbooks.Add()
用Worksheets对象的Add方法创建一个工作表对象sht:
code.python
>>> sht=bk.Worksheets.Add()
设置工作表中A1单元格的值为10:
code.python
>>> sht.Range("A1").Value=10
>>> bk.Close(SaveChanges=False)
>>> app.Quit()