網站首頁 編程語言 正文
?數據處理是 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)按單元格讀?。篶ell1 = 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、運行結果
原文鏈接:https://blog.csdn.net/m0_67695717/article/details/126059968
相關推薦
- 2022-10-12 sql中exists的基本用法示例_MsSql
- 2022-06-23 C++詳解哈夫曼樹的概念與實現步驟_C 語言
- 2022-12-29 React中事件的類型定義方式_React
- 2022-06-18 Android?ProgressBar實現進度條效果_Android
- 2022-09-25 CSS-解決因子元素浮動引起的父元素高度塌陷問題
- 2022-11-19 C#字符串與正則表達式的圖文詳解_C#教程
- 2022-07-25 C++數據結構之雙向鏈表_C 語言
- 2022-06-14 jquery實現樓層滾動特效_jquery
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支