python使用openpyxl打開及讀取excel表格過程
openpyxl簡介
openpyxl 最好用的 python 操作 excel 表格庫,但不是官方的標(biāo)準(zhǔn)庫,需要手動安裝
可以讀取和寫入excel文件,支持【.xlsx / .xlsm / .xltx / .xltm】格式的文件,可處理excel數(shù)據(jù)、公式、樣式,且可以在表格內(nèi)插入圖表
安裝openpyxl
pip install openpyxl 或 pip3 install openpyxl
打開及讀取表格內(nèi)容
首先,需要了解 Excel 表格中的 行(row)、列(column)、格子(cell) 和 sheet 表

1、打開 Excel 表格并獲取表格名稱

from openpyxl import load_workbook # 1.打開 Excel 表格并獲取表格名稱 # 打開當(dāng)前py程序路徑下excelDemo文件夾下的qiyuan.xlsx文件 workbook = load_workbook(filename='./excelDemo/qiyuan.xlsx') print(workbook.sheetnames) #輸出結(jié)果: ['機(jī)審測試用例', '分期產(chǎn)品管理端', '分期產(chǎn)品app端'] # 一共三個表格
2、通過 sheet 名稱獲取表格
from openpyxl import load_workbook # 1.打開 Excel 表格并獲取表格名稱 # 打開當(dāng)前py程序路徑下excelDemo文件夾下的qiyuan.xlsx文件 workbook = load_workbook(filename='./excelDemo/qiyuan.xlsx') print(workbook.sheetnames) #輸出結(jié)果: ['機(jī)審測試用例', '分期產(chǎn)品管理端', '分期產(chǎn)品app端'] # 一共三個表格 # 2.通過 sheet 名稱獲取表格 sheet1 = workbook["分期產(chǎn)品app端"] print(sheet1) # 輸出結(jié)果: <Worksheet "分期產(chǎn)品app端">
3、獲取表格的尺寸大小(幾行幾列數(shù)據(jù))
from openpyxl import load_workbook # 1.打開 Excel 表格并獲取表格名稱 # 打開當(dāng)前py程序路徑下excelDemo文件夾下的qiyuan.xlsx文件 workbook = load_workbook(filename='./excelDemo/qiyuan.xlsx') print(workbook.sheetnames) #輸出結(jié)果: ['機(jī)審測試用例', '分期產(chǎn)品管理端', '分期產(chǎn)品app端'] # 一共三個表格 # 2.通過 sheet 名稱獲取表格 sheet1 = workbook["分期產(chǎn)品app端"] print(sheet1) # 輸出結(jié)果: <Worksheet "分期產(chǎn)品app端"> # 3.獲取表格的尺寸大小(幾行幾列數(shù)據(jù)) print(sheet1.dimensions) # 輸出結(jié)果: A1:S207 # 從 A1:S207 A列到S列 共19列 207行
4、獲取表格內(nèi)某個格子的數(shù)據(jù)
from openpyxl import load_workbook # 1.打開 Excel 表格并獲取表格名稱 # 打開當(dāng)前py程序路徑下excelDemo文件夾下的qiyuan.xlsx文件 workbook = load_workbook(filename='./excelDemo/qiyuan.xlsx') print(workbook.sheetnames) #輸出結(jié)果: ['機(jī)審測試用例', '分期產(chǎn)品管理端', '分期產(chǎn)品app端'] # 一共三個表格 # 2.通過 sheet 名稱獲取表格 sheet1 = workbook["分期產(chǎn)品app端"] print(sheet1) # 輸出結(jié)果: <Worksheet "分期產(chǎn)品app端"> # 3.獲取表格內(nèi)某個格子的數(shù)據(jù) # 1) sheet["A1"]方式 獲取 A1 格子的數(shù)據(jù) # cell.value 獲取格子中的值 cell1 = sheet1['G5'] print(cell1.value) # 輸出結(jié)果:輸出第7列第5行的內(nèi)容: # 1.未登錄/登錄過期情況下Me按鈕進(jìn)入頁面 2.在Me頁面中點擊Sign up now # 2) sheet.cell(row=, column=)方式 cell2 = sheet1.cell(row=4,column=5) print(cell2.value) # 輸出結(jié)果:輸出第4行第5列的內(nèi)容: # 主頁點擊Apply Now查看是否能正常跳轉(zhuǎn)到登錄界面
5、獲取某個格子的行數(shù)、列數(shù)、坐標(biāo)

.row獲取某個格子的行數(shù);.columns獲取某個格子的列數(shù);.corordinate獲取某個格子的坐標(biāo)
from openpyxl import load_workbook # 1.打開 Excel 表格并獲取表格名稱 # 打開當(dāng)前py程序路徑下excelDemo文件夾下的qiyuan.xlsx文件 workbook = load_workbook(filename='./excelDemo/testCase.xlsx') # 2.獲取表格 只有一張表格的時候,可以直接 active sheet2 = workbook.active print(sheet2) # 輸出結(jié)果 <Worksheet "Sheet1"> # 3.獲取某個格子的行數(shù)、列數(shù)、坐標(biāo) cell2 = sheet2["E3"] print(cell2.value, cell2.row, cell2.column, cell2.coordinate) # 輸出結(jié)果: 20歲用戶是否可以通過機(jī)審 3 5 E3
6、獲取一系列格子
6.1 sheet[]方式
from openpyxl import load_workbook # 1.打開 Excel 表格并獲取表格名稱 # 打開當(dāng)前py程序路徑下excelDemo文件夾下的qiyuan.xlsx文件 workbook = load_workbook(filename='./excelDemo/testCase.xlsx') # 2.獲取表格 只有一張表格的時候,可以直接 active sheet2 = workbook.active print(sheet2) # 輸出結(jié)果 <Worksheet "Sheet1"> # 3.獲取一系列格子 sheet[]方式 # 獲取 A1:C2 區(qū)域的值 cells = sheet2["A1:C2"] print(cells) # 輸出結(jié)果:((<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.B1>, <Cell 'Sheet1'.C1>), # (<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.C2>)) # 先行后列 for cell_rows in cells: for cell_columns in cell_rows: print(cell_columns.value) # 輸出結(jié)果: # 功能模塊(依據(jù)導(dǎo)圖一級分支) # 功能點(二級功能點/二級測試子任務(wù)) # 優(yōu)先級(主、高、中、低) # 機(jī)審規(guī)則 # 年齡檢測 # 主
特別的,如果我們只想獲取“A 列”,或者獲取“A-C 列”,可以采取如下方式:
sheet["A"] --- 獲取 A 列的數(shù)據(jù) sheet["A:C"] --- 獲取 A,B,C 三列的數(shù)據(jù) sheet[5] --- 只獲取第 5 行的數(shù)據(jù)
from openpyxl import load_workbook # 1.打開 Excel 表格并獲取表格名稱 # 打開當(dāng)前py程序路徑下excelDemo文件夾下的qiyuan.xlsx文件 workbook = load_workbook(filename='./excelDemo/testCase.xlsx') # 2.獲取表格 只有一張表格的時候,可以直接 active sheet2 = workbook.active print(sheet2) # 輸出結(jié)果 <Worksheet "Sheet1"> # 3.獲取一系列格子 sheet[]方式 # 1)獲取 E 列的數(shù)據(jù) cells1 = sheet2["E"] # print(cells) for cell_columns in cells1: print(cell_columns.value) # 輸出結(jié)果: # 用例概述(根據(jù)功能點進(jìn)行分解) # 19歲用戶是否可以通過機(jī)審 # 20歲用戶是否可以通過機(jī)審 # 25歲用戶是否可以通過機(jī)審 # 61歲用戶是否可以通過機(jī)審 # 60歲用戶是否可以通過機(jī)審 # 在菲律賓境外提交申請 # 在菲律賓境內(nèi)提交申請 # 2)獲取 A,B,C 三列的數(shù)據(jù) cells2 = sheet2["A:C"] # print(cells) # 先行后列 for cell_rows in cells2: for cell_columns in cell_rows: print(cell_columns.value) # 3) 只獲取第 5 行的數(shù)據(jù) cells3 = sheet2["5"] for cell_columns in cells3: print(cell_columns.value)
6.2 .iter_rows()與.iter_cols()方式
.iter_rows()是按行讀取,.iter_cols()是按列讀取。
from openpyxl import load_workbook # 1.打開 Excel 表格并獲取表格名稱 # 打開當(dāng)前py程序路徑下excelDemo文件夾下的qiyuan.xlsx文件 workbook = load_workbook(filename='./excelDemo/testCase.xlsx') # 2.獲取表格 只有一張表格的時候,可以直接 active sheet3 = workbook.active print(sheet3) # 輸出結(jié)果 <Worksheet "Sheet1"> # 3.獲取一系列格子 .iter_rows()與.iter_cols()方式 # 按行獲取值 # 讀取1-2行中1-4列的數(shù)據(jù)(先行后列) # for i in sheet3.iter_rows(min_row=1, max_row=2, min_col=1,max_col=4): # for j in i: # print(j.value) # 輸出結(jié)果: # 功能模塊(依據(jù)導(dǎo)圖一級分支) # 功能點(二級功能點/二級測試子任務(wù)) # 優(yōu)先級(主、高、中、低) # 用例編號(M-00001---管理端,A-00001---APP) # 機(jī)審規(guī)則 # 年齡檢測 # 主 # A-00001 # 按列獲取值 # 讀取1-2行中1-4列的數(shù)據(jù)(先列后行) for i in sheet3.iter_cols(min_row=1, max_row=2, min_col=1,max_col=4): for j in i: print(j.value) # 輸出結(jié)果: # 功能模塊(依據(jù)導(dǎo)圖一級分支) # 機(jī)審規(guī)則 # 功能點(二級功能點/二級測試子任務(wù)) # 年齡檢測 # 優(yōu)先級(主、高、中、低) # 主 # 用例編號(M-00001---管理端,A-00001---APP) # A-00001
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Python使用pandas和openpyxl讀取Excel表格的方法詳解
- python使用openpyxl實現(xiàn)對excel表格相對路徑的超鏈接的創(chuàng)建方式
- python openpyxl提取Excel圖片實現(xiàn)原理技巧
- python?openpyxl操作Excel的安裝使用
- python使用openpyxl庫處理Excel文件詳細(xì)教程
- Python通過OpenPyXL處理Excel的完整教程
- python使用openpyxl庫讀取Excel文件數(shù)據(jù)
- python如何通過openpyxl讀寫Excel文件
- Python?Excel操作從零學(xué)習(xí)掌握openpyxl用法
- 使用python中的openpyxl操作excel詳解
- python操作Excel神器openpyxl看這一篇就夠了
- python使用Openpyxl操作Excel文件的實現(xiàn)
相關(guān)文章
python空值判斷方式(if xxx和if xxx is None的區(qū)別及說明
這篇文章主要介紹了python空值判斷方式(if xxx和if xxx is None的區(qū)別及說明),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11
Python求出0~100以內(nèi)的所有素數(shù)
質(zhì)數(shù)又稱素數(shù)。一個大于1的自然數(shù),除了1和它自身外,不能被其他自然數(shù)整除的數(shù)叫做質(zhì)數(shù);否則稱為合數(shù)。下面小編給大家?guī)砹薖ython求出0~100以內(nèi)的所有素數(shù)實例代碼,需要的朋友參考下2018-01-01
python numpy中對ndarry按照index增刪改查
這篇文章主要介紹了python numpy中對ndarry按照index增刪改查,在numpy中的ndarry是一個數(shù)組,因此index就是位置下標(biāo),注意下標(biāo)是從0開始,接下來一起進(jìn)入下面文章了解詳細(xì)內(nèi)容吧2022-02-02
Python實現(xiàn)添加和自定義設(shè)置Word頁眉頁腳
頁眉和頁腳是 Word 文檔中常用的元素,用于在每一頁的頂部或底部顯示統(tǒng)一的信息,本文將介紹如何使用 Python 和 Free Spire.Doc 庫在 Word 文檔中添加和設(shè)置頁眉頁腳,包括添加文本、圖片、頁碼,以及設(shè)置奇偶頁不同的頁眉頁腳等常見操作,有需要的可以了解下2026-04-04
Python基于scapy實現(xiàn)修改IP發(fā)送請求的方法示例
這篇文章主要介紹了Python基于scapy實現(xiàn)修改IP發(fā)送請求的方法,涉及Python網(wǎng)絡(luò)編程中使用scapy操作IP的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-07-07
Python要求O(n)復(fù)雜度求無序列表中第K的大元素實例
這篇文章主要介紹了Python要求O(n)復(fù)雜度求無序列表中第K的大元素實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
pycharm的console輸入實現(xiàn)換行的方法
今天小編就為大家分享一篇pycharm的console輸入實現(xiàn)換行的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01

