程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python 操作 Excel,如何又快又好?

編輯:Python

*數據處理是 Python 的一大應用場景,而 Excel 則是最流行的數據處理軟件。因此用 Python 進行數據相關的工作時,難免要和 Excel 打交道。Python處理Excel 常用的系列庫有:xlrd、xlwt、xlutils、openpyxl

◈xlrd - 用於讀取 Excel 文件,支持.xls和.xlsx格式
◈xlwt - 用於寫入 Excel 文件,只支持.xls格式
◈xlutils - 操作 Excel 文件的實用工具,如復制、分割、篩選等
◈openpyxl - 既可以讀文件、也可以寫文件、也可以修改文件;但是,openpyxl 庫不支持 xls 格式的Excel文檔。

一、安裝庫的操作

打開cmd,輸入命令進行安裝:pip install xlwt

打開cmd,輸入命令進行安裝:pip install xlrd

打開cmd,輸入命令進行安裝:pip install openpyxl

二、xlwt庫使用

◈xlwt - 用於寫入 Excel 文件,只支持.xls格式

1.需求:創建一個新的xls文件中寫入如下數據,然後保存為login.xls

2.使用xlwt寫入數據的步驟

1)導包:import xlwt
2)創建一個文件對象:book=xlwt.Workbook()
3)添加一個sheet工作表:sh1=book.add_sheet(Sheetname)
4)添加內容:sh1.write(row,col,value) #單元格行和列分別從0開始
5)保存文件:book.save(filename)

3.代碼實現

# coding = utf-8
import xlwt
#創建一個excel文件對象
book = xlwt.Workbook()
#添sheet工作表
sh1 = book.add_sheet('登錄數據')
sh1.write(0,0,'用戶名') # 在A1單元格寫入數據
sh1.write(0,1,'密碼') # 在B1單元格寫入數據
row1 = ['test','test123']
# 結合循環寫入一行數據
for i in range(len(row1)):
sh1.write(1,i,row1[i])
book.save('login.xls') # 保存文件

三、xlrd庫使用

◈xlrd - 用於讀取 Excel 文件,支持.xls和.xlsx格式

1.需求:讀取login.xls文件中指定的單元格、指定行、指定的列或者所有的數據

2.使用xlrd讀取數據的步驟

1)導包:import xlrd
2)打開一個文件:book=xlrd.open_workbook(filename)
3)使用sheet工作表:sh1=book.sheet_by_name(sheet_name)
4)讀取sheet工作表的屬性信息
print('sheet總行數',sh1.nrows)
print('sheet總列數',sh1.ncols)
5)讀取sheet工作表存儲的文本內容
1)讀取一行:row1=sh1.row_values(row) # 行號從0開始
2)讀取一列:col1=sh1.col_values(col) # 列號從0開始
3)讀取一個單元格:cell_value=sh1.cell(row,col).value

3.代碼實現

# coding = utf-8
import xlrd
book = xlrd.open_workbook('login.xls')
sh1 = book.sheet_by_name('登錄數據')
# 讀取第一行的數據
row1 = sh1.row_values(0)
print('第一行數據:',row1)
# 讀取第一列的數據
col1 = sh1.col_values(0)
print('第一列數據:',col1)
# 讀取指定單元格的數據
cell = sh1.cell(1,1).value
print('A2單元格的值:',cell)
# 讀取所有的數據
rows = sh1.nrows # 獲取當前工作表總的行數
for i in range(rows):
print('所有數據打印,第{}行,數據為:{}:'.format(i,sh1.row_values(i)))

4.代碼運行結果展示:

四、openpyxl庫使用--寫入數據

◈openpyxl - 既可以讀文件、也可以寫文件、也可以修改Excel文件;但是不支持 xls 格式

1.需求:對已存在的test_api.xlsx文件寫入接口測試結果,如下圖所示

2.使用openpyx寫入數據的步驟

1)導包:import openpyxl
2)打開文件:book = openpyxl.load_workbook(filename)
3)使用sheet工作表:sheet = book[sheetname]
4) 單元格寫入:sh1['F2'] = 'PASS' 或者 sh1.cell(row,col).value='FAIL' #行和列的索從1開始
6:保存文件:book.save(filename)

3.代碼實現

# coding = utf-8
import openpyxl
# 打開excel文件
book = openpyxl.load_workbook('test_api.xlsx')
# 通過工作表名字打開工作表
sh1 = book['register']
# 通過單元格的名稱寫入數據
sh1['I2'] = '不通過'
# 通過單元格的行、列寫入數據
sh1.cell(3,9).value = '通過'
# 保存文件
book.save('test_api.xlsx')

五、openpyxl庫使用--讀取數據

1.需求:讀取test_api.xls文件中login工作表指定的單元格、指定行、或者所有的數據

2.使用openpyx讀取數據的步驟

1)導包:import openpyxl
2)打開文件:book = openpyxl.load_workbook(filename)
3)使用sheet工作表:sheet = book[sheetname]
4)讀取sheet工作表的屬性信息
返回工作表的最大行數:sheet.max_row
返回工作表的的最大列數:sheet.max_column
5)讀取sheet工作表存儲的文本內容
1)按單元格讀取:cell1 = sh1['A1'].value 或者 cell2= sh1.cell(row,col).value #行和列的索引值是從1開始的
2) 按行讀取
for row in sheet.iter_rows(max_row=3):# 讀取前3行數據
for cell in row:
print(cell.value,end='\t')
print()

3.代碼實現

# coding = utf-8
import openpyxl
book = openpyxl.load_workbook('test_api.xlsx')
sh1 = book['login']
# 讀取單元格數據
cell1 = sh1['A1'].value
print('A1單元格的值為:',cell1)
cell2 = sh1.cell(1,2).value
print('B1單元格的值為:',cell2)
# 讀取前2行數據
print('讀取前2行數據:')
for row in sh1.iter_rows(max_row= 2): # 讀取前2行數據
for cell in row:
print(cell.value,end='\t|\t') # 不換行輸出這一行中每個單元格的值
print() # 輸出完一行之後換行
# 讀取所有的數據
print('讀取所有的數據:')
rows = sh1.max_row # 獲取當前工作表總的行數
for row in sh1.iter_rows(max_row=rows): # 讀取所有的數據
for cell in row:
print(cell.value, end='\t|\t') # 不換行輸出這一行中每個單元格的值
print() # 輸出完一行之後換行

4、運行結果

喜歡軟件測試的小伙伴們,如果我的博客對你有幫助、如果你喜歡我的博客內容,請 “點贊” “評論” “收藏” 一 鍵三連哦!

軟件測試工程師自學教程:

這才是2022最精細的自動化測試自學教程,我把它刷了無數遍才上岸字節跳動,做到漲薪20K【值得自學軟件測試的人刷】

接口性能測試 — 軟件測試人必會618實戰場景分析

軟件測試工程師月薪2W以上薪資必學技能 — Python接口自動化框架封裝.

美團面試真題_高級測試25K崗位面試 — 軟件測試人都應該看看

測試開發之全面剖析自動化測試平台 — 軟件測試人的必經之路

軟件測試必會_Jmeter大廠實戰 — 僅6步可實現接口自動化測試

Jmeter實戰講解案例 — 軟件測試人必會


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved