在 Excel 2007 和 Excel 2010 以及 WPS 中,Excel 软件是多文档界面,一个 Excel 实例对应多个工作簿对象。而在 Excel 2013 及其以上以及 Excel 2003 中,一个 Excel 实例对应的是一个工作簿对象。我们需要理解 Excel 实例于工作簿对象的对应关系。如下是 Excel 2013 中的单文档界面。
如果你打开了多个工作簿,那么每一个工作簿都对应一个 Excel 实例。
再来看看 Excel 2007、Excel 2010 以及 WPS 中的多文档界面。
以上便是单文档界面和多文档界面的区别。因为有这些区别,所以我们在表示 Excel 对象的时候也有一些区别。具体的区别如下:
xlwings对象 | 对应 Excel 中的对象 |
---|---|
xw.App() | 一个 Excel 实例对象 |
xw.apps | 打开的 Excel 实例集合 |
xw.apps[i] | 打开的第 i 个 Excel 实例 |
xw.apps(i) | 打开的第 i 个 Excel 实例 |
xw.apps[i].books | 第 i 个 Excel 实例的工作簿集合 |
xw.apps[i].books[i] | 第 i 个 Excel 实例的第 j(如果是单文档界面则 i = 0) 个工作簿 |
xw.app[i].books[i].sheets | 第 i 个 Excel 实例的第 i(如果是单文档界面则 i = 0) 个工作簿的工作表集合 |
xw.app[i].books[i].sheets[i] | 第 i 个 Excel 实例的第 i(如果是单文档界面则 j = 0) 个工作簿的第 i 个工作表 |
xw.app[i].boos[i].sheets[i].cells | 第 i 个 Excel 实例的第 i(如果是单文档界面则 j = 0) 个工作簿的第 i 个工作表的所有单元格 |
xw.app[i].boos[i].sheets[i].cells(i,j) | 第 i 个 Excel 实例的第 i(如果是单文档界面则 j = 0) 个工作簿的第 i 个工作表的第i行的第j列单元格 |
xw.app[i].boos[i].sheets[i].range("A1:B10") | 第 i 个 Excel 实例的第 i(如果是单文档界面则 j = 0) 个工作簿的第 i 个工作表的“A1”到“B10”单元格区域 |
xw.Range("A1:B10") | 当前正在操作的工作表的“A1”到“B10”单元格区域 |
注意:在本系列文章中,我们总是以单文档界面为例。
练习
1.打开一个空白的 Excel 工作簿,并在A1单元格中写入数字1
2.在单元格A1到B10中输入“xlwings-让Excel飞!”