Python 3 學習筆記:Excel 基礎操作(二)

Python 3 學習筆記:Excel 基礎操作(二)

賦值與取值

賦值

上面的操作都是針對工作薄及工作表的,但是我們知道在 Excel 文件中,真正的數據都是儲存在單元格中的。

在 Excel 文件中,列使用字母表示,行使用數字表示,如果將其視為一個座標系,則列的值就是 X 軸座標值,行的值就是 Y 軸座標值,單元格是列與行的交叉點,所以單元格表示成 A1、F5 等。

給單元格賦值同樣可以採用類似索引的方式,首先取得工作表,然後再給其中某個單元格賦值即可,

workBookobject["sheetName"]["cellName"] = value


其中,cellName 就是單元格的名稱,如 A1、F5 等。

還可以使用 cell() 方法對單元格進行賦值,

workBookobject["sheetName"].cell(column=colNo, row=rowNo, value=value)


該方法需要三個參數,即列、行和值。

其中,列比較特殊,雖然在 Excel 文件中,列是由字母表示的,但是在 cell() 方法中,列和行一樣都是使用整數表示,從 1 開始。例如,E3 這個單元格的列是 E,但是在 cell() 方法中需要將其賦值為整數 5,如:

workBookobject["sheetName"].cell(column=5, row=3, value="python")


取值

取值很簡單,直接使用單元格的編號即可取出其中的數據,

workBookobject["sheetName"]["cellName"].value


cellName 表示單元格的名字,即它的列和行的座標點,如 A9。單元格除了 value 這個屬性,還有 column(列)和 row(行)兩個屬性,用法同 value 一樣。

上面是取一個單元格的值,如果想要取一行中若干個單元格的值,只要在起始的單元格和結束的單元格之間使用冒號(:)分隔即可,

workBookobject["sheetName"]["startCellName":"endCellName"]


或者,

workBookobject["sheetName"]["startCellName:endCellName"]


得到的結果是一個元組的元組,即二維元組,裡層元組的元素是 Cell 類型,如下所示:

(
(,),
(,),
(,),
(,),
(,),
(,),
(,),
(,),
(,)
)


所以,訪問其中 A3 的值就是,

workBookobject["sheetName"]["A1:A9"][3][0].value


同理,如果是多列多行的單元格,同樣是一個二維元組,

(
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , )
)


只不過這裡是以列為基準,拋開外層元組不看,裡層每個元組的元素都是同一列的單元格。

使用公式

在單元格使用公式與在 Office Excel 中操作文件一樣,如設置一個 SUM 公式,

workBookobject["sheetName"]["A10"].value = "=SUM(A1:A9)"


則單元格 A10 的值就是 A1 到 A9 的和,前提是其中的數據是可以計算的。

但是,openpyxl 不會檢查寫的 Excel 公式名稱及語法是否正確,如果錯誤不會給出任何提示,但是可以使用 openpyxl.utils 中的 FORMULAE 檢查公式名稱是否正確,例如,

from openpyxl.utils import FORMULAE
print("SUM" in FORMULAE)


如果公式名稱返回 True,否則返回 False。

加載已有文件

如果需要打開一個已經存在的 Excel 文件,可以先加載該文件,

from openpyxl import load_workbook
workBookobject = load_workbook("example.xlsx")


同樣可以使用上面的方法對數據進行操作。

◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆◆ ◆ ◆ ◆ ◆◆

為了幫各位觀眾老爺們快速入門python,我在這裡準備了一套“經典入門教程”,這些是入門付費教程哦,現在當做福利免費贈送給各位觀眾老爺們,私信我“python入門”就可以領取!

點擊我的頭像關注我進入主頁,就能看到私信按鈕了。私信我“python入門”,一個字不能多一個字不能少,即可快速領取!


分享到:


相關文章: