在 Excel 2007 和 Excel 2010 以及 WPS 中,Excel 軟件是多文檔界面,一個 Excel 實例對應多個工作簿對象。而在 Excel 2013 及其以上以及 Excel 2003 中,一個 Excel 實例對應的是一個工作簿對象。我們需要理解 Excel 實例于工作簿對象的對應關系。如下是 Excel 2013 中的單文檔界面。
Excel 中的常用對象
如果你打開了多個工作簿,那么每一個工作簿都對應一個 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
練習1
2.在單元格A1到B10中輸入“xlwings-讓Excel飛!”
練習2