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頁面中點(diǎn)擊Sign up now # 2) sheet.cell(row=, column=)方式 cell2 = sheet1.cell(row=4,column=5) print(cell2.value) # 輸出結(jié)果:輸出第4行第5列的內(nèi)容: # 主頁點(diǎn)擊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)圖一級分支) # 功能點(diǎn)(二級功能點(diǎn)/二級測試子任務(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ù)功能點(diǎn)進(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)圖一級分支) # 功能點(diǎn)(二級功能點(diǎn)/二級測試子任務(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ī)則 # 功能點(diǎn)(二級功能點(diǎn)/二級測試子任務(wù)) # 年齡檢測 # 優(yōu)先級(主、高、中、低) # 主 # 用例編號(M-00001---管理端,A-00001---APP) # A-00001
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
- Python使用pandas和openpyxl讀取Excel表格的方法詳解
- python使用openpyxl實(shí)現(xiàn)對excel表格相對路徑的超鏈接的創(chuàng)建方式
- python openpyxl提取Excel圖片實(shí)現(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文件的實(shí)現(xiàn)
相關(guān)文章
Python+OpenCV繪制多instance的Mask圖像
Mask圖像中,不同值表示不同的實(shí)例(instance)。本文將詳細(xì)為大家講講如何利用OpenCV繪制多instance的Mask圖像,感興趣的可以學(xué)習(xí)一下2022-06-06詳解Python中字符串前“b”,“r”,“u”,“f”的作用
這篇文章主要介紹了Python中字符串前“b”,“r”,“u”,“f”的作用,感興趣的朋友跟隨小編一起看看吧2019-12-12老生常談Python startswith()函數(shù)與endswith函數(shù)
下面小編就為大家?guī)硪黄仙U凱ython startswith()函數(shù)與endswith函數(shù)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09Python實(shí)現(xiàn)實(shí)時監(jiān)測可視化數(shù)據(jù)大屏
實(shí)時監(jiān)測的可視化數(shù)據(jù)大屏是一種非常有用的工具,可以幫助我們實(shí)時了解數(shù)據(jù)的變化和趨勢,下面我們將介紹如何使用Python代碼實(shí)現(xiàn)實(shí)時監(jiān)測的可視化數(shù)據(jù)大屏,需要的可以參考一下2023-06-06Python 合并多個TXT文件并統(tǒng)計詞頻的實(shí)現(xiàn)
這篇文章主要介紹了Python 合并多個TXT文件并統(tǒng)計詞頻的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08