Python_openpyxl介紹
自動化測試過程當中如今愈來愈多的須要對各類文檔進行讀寫的操做。最經常使用的就是對txt文本,xlsx文本,csv文本進行讀寫操做。openpyxl就是一個對excel文本讀寫操做的利器。
openpyxl簡介
openpyxl是一個開源項目,openpyxl模塊是一個讀寫excel2010文檔的python庫,若是要處理更早期的excel文檔,須要使用xlrd(只能讀excel文件)模塊,xlwt(只能寫excel文件)模塊。openpyxl是
一款既能讀,又能寫的綜合工具,openpyxl能夠讀寫xltm,xltx,xlsm,xlsx文件,而且能夠實現跨平臺
處理大量數據。
openpyxl在線安裝
pip3 install openpyxl
openpyxl 引用
from openpyxl import Workbook
from openpyxl ipmort load_workbook
學習openpyxl須要掌握的基本用法
openpyxl模塊中有3個不一樣的類,每一個類都有不一樣的屬性和方法
一、Workbook: 工做簿,能夠理解爲excel對象
二、worksheet: 表格, 能夠理解爲excel中sheet對象
三、cell : 單元格,
操做步驟
一、建立一個excel或者打開一個已存在的excel,須要建立一個workbook對象
二、建立一個表或者獲取一個表須要先建立workbook對象,經過workbook對象獲得一個worksheet對象
三、經過worksheet對象建立cell對象 ,獲取單元格里面的數據。
workbook對象
workbook對象表明一個excel文件,在操做一個excel文檔以前,須要建立workbook對象
例子
from openpyxl import Workbook
wb=Workbook() #建立一個excel工做簿對象
wb.sava(filename) 建立後保存
from openpyxl import load_workbook
wb=load_workbook("test.xlsx") #讀取一個已經建立過的test.xlsx文檔,建立一個工做簿對象
注意點:
workbook 和load_workbook 都是建立一個工做簿對象,若是咱們是建立一個新的excel文檔就用workbook類,若是是對現有excel文檔進行操做,用load_workbook方法
workbook類下面的經常使用屬性和方法
active:獲取當前活動的Worksheet
worksheets:以列表的形式返回全部的Worksheet(表格)
read_only:判斷是否以read_only模式打開Excel文檔
encoding:獲取文檔的字符集編碼
sheetnames:獲取工做簿中的表(列表)
其中比較經常使用的幾個
wb.active #獲取當前活躍的表格,默認是第一個
wb.sheetnames #獲取全部表格的名稱(列表)
wb['sheet1'] #使用指定的表格
wb.remove_sheet('sheetname') #刪除一個表格
wb.create_sheet('sheetname') #建立一個表格
cell中寫入數據
wb=Workbook()
sheet=wb["sheet1"]
方法1
sheet["A1"]="zhangsan" 在A1單元格內寫入zhangsan
方法2
sheet.cell(row=2,column=2).value=2 #2行2列寫入2
在當前表單末尾添加多行數據
rows=(
(1,2,3),(4,5,6),(7,8,9)
)
for row in rows:
sheet.append(row)
wb.save("dd.xlsx")
openpyxl讀取單元格
wb=load_workbook("aa.xlsx")
sheet=wb.active
a=sheet['A1'] #A1單元格複製cell對象
b=sheet['A2']
c=sheet['A3']
d=sheet.cell(row=2,column=2)
print(a.value) #cell對象獲取單元格值
print(b.value)
print(c.value)
print(d.value)
讀取多列數據
cells=sheet["A1":"B3"]
for c1,c2 in cells:
print("{0},{1}".format(c1.value,c2.value))
讀取全部數據
for row in sheet.iter_rows(min_row=1,max_row=3,min_col=1,max_col=3):
for cell in row:
print(cell.value,end=' ')
print()
讀取全部數據保存到一個列表中
rows = sheet.rows values = [] for row in rows: for cell in row: values.append(cell.value)