中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-06-17 16:44:40 來源:網絡 閱讀:402 作者:wx5d52d9ece41bf 欄目:編程語言

安裝模塊

OpenPyXL 模塊是一個第三方模塊,所以需要使用 pip 工具安裝,

pip install openpyxl

文件結構

首先,我們需要了解一下 Excel 文件的基本結構,一個 Excel 文件被稱為一個工作薄,工作薄中可以包含多個工作表(sheet),每個 sheet 由列和行組成,列與行的交叉點被稱為單元格,實際數據就是存放在單元格中的。單元格中的數據可以是數字、文本、時間或者公式等等。

基本操作

創建工作薄

首先,需要從 OpenPyXL 引入 Workbook 類,

from openpyxl import Workbook

使用該類可以創建一個 Excel 文件,

workBookObject = Workbook()

workBookObject 就是 Workbook 類的實例的名稱,也就是一個 Excel 工作薄。

通過 sheetnames 屬性獲取當前工作薄中的工作表,

workBookobject.sheetnames

還可以通過 active 屬性獲取當前正在操作的工作表,

workBookobject.active

保存工作薄

創建 Workbook 類的實例之后,其實并沒有創建一個真正的 Excel 文件,從一點就可以看出,我們在創建 Workbook 對象時,并沒有給它一個實際的文件名,這時候可以通過 save() 方法將工作薄保存成一個實際的 Excel 文件,

workBookobject.save(filename="example.xlsx")

該方法會將文件保存到當前目錄下。

如果需要將文件保存至指定位置,filename 參數也可以是一個路徑,如:

workBookobject.save(filename=r"D:\桌面\example.xlsx")

使用 save() 方法保存文件時,要注意如果目錄下已經存同名文件,該方法不會做出提示,而是會直接覆蓋保存。

創建工作表

創建工作薄之后,會默認自動創建一個工作表,我們也可以自己創建一個新的工作表,

workBookobject.create_sheet(sheetName)

sheetName 表示新工作表的名稱。如果需要將工作表重新命名,可以修改工作表的 title 屬性,

workBookobject["oldSheetName"].title = "newSheetName"

oldSheetName 即該工作表之前的名字,newSheetName 表示重命名之后的名字。而且可以看出,工作薄可以通過類似索引的方式訪問它的工作表,只不過這個“索引”是工作表的名字。

復制工作表

如果想創建某個工作表的副本,可以使用下面的方法,

workBookobject.copy_worksheet(sheetName)
復制
sheetName 表示該工作薄中一個已經存在的工作表的名字。

刪除工作表

如果某個工作表不再需要,則可以通過 remove() 方法將其刪除,

workBookobject.remove(workBookobject["sheetName"])

賦值與取值

賦值

上面的操作都是針對工作薄及工作表的,但是我們知道在 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 類型,如下所示:

(
(<Cell 'Sheet'.A1>,),
(<Cell 'Sheet'.A2>,),
(<Cell 'Sheet'.A3>,),
(<Cell 'Sheet'.A4>,),
(<Cell 'Sheet'.A5>,),
(<Cell 'Sheet'.A6>,),
(<Cell 'Sheet'.A7>,),
(<Cell 'Sheet'.A8>,),
(<Cell 'Sheet'.A9>,)
)

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

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

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

(
(<Cell 'Sheet'.A1>, <Cell 'Sheet'.B1>, <Cell 'Sheet'.C1>),
(<Cell 'Sheet'.A2>, <Cell 'Sheet'.B2>, <Cell 'Sheet'.C2>),
(<Cell 'Sheet'.A3>, <Cell 'Sheet'.B3>, <Cell 'Sheet'.C3>),
(<Cell 'Sheet'.A4>, <Cell 'Sheet'.B4>, <Cell 'Sheet'.C4>),
(<Cell 'Sheet'.A5>, <Cell 'Sheet'.B5>, <Cell 'Sheet'.C5>),
(<Cell 'Sheet'.A6>, <Cell 'Sheet'.B6>, <Cell 'Sheet'.C6>),
(<Cell 'Sheet'.A7>, <Cell 'Sheet'.B7>, <Cell 'Sheet'.C7>),
(<Cell 'Sheet'.A8>, <Cell 'Sheet'.B8>, <Cell 'Sheet'.C8>),
(<Cell 'Sheet'.A9>, <Cell 'Sheet'.B9>, <Cell 'Sheet'.C9>)
)

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

使用公式

在單元格使用公式與在 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")

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江津市| 怀集县| 合江县| 娱乐| 龙胜| 额敏县| 永胜县| 正阳县| 伊春市| 黑水县| 耒阳市| 休宁县| 桑日县| 张家界市| 井冈山市| 科技| 双峰县| 离岛区| 宝清县| 武鸣县| 博客| 滨海县| 合阳县| 车致| 周至县| 隆化县| 明水县| 乐安县| 汝州市| 安丘市| 曲靖市| 广安市| 平昌县| 江山市| 徐汇区| 博乐市| 晋江市| 新宾| 汝城县| 丹阳市| 加查县|