python做excel表格代码_python操作excel表格
我們在寫測試用例的時候,是創(chuàng)建一個表格.xlsx,然后把各種條件加到這張表格中去,所以,如何對excel表格操作,是相當(dāng)重要的一環(huán),那么,接下來,這篇博客就直接教會大家如何通過python去處理平時工作中用到的測試用例表格,我們一步一步來,慢慢的給各位同學(xué)講明白。
首先,給大家先補(bǔ)個基礎(chǔ)的常識,就是你對一個excel的了解有多少?看下圖所示:
一、excel操作三大對象
workbook 工作薄:一個excel文件會被加載為一個工作薄對象workbook
form 表單:excel文件中,每個sheet表達(dá)會被加載成一個工作表對象sheet
cell 單元格:工作表中的每一個格子就是一個單元格,即表格對象cell
好,先把這些基礎(chǔ)的知識先了解,因?yàn)?#xff0c;excel主要就是操作這三個對象workbook、sheet、cell
以下,我拿一段代碼舉例,在用python操作excel時,先要安裝一個openpyxl,如何安裝?
安裝完成以后,開始建一個表格文件.xlsx,然后復(fù)制或者剪切到python的具體文件夾目錄下,以下是我自己隨意建的表格:
代碼如下:
importopenpyxl#第一步:將excel文件加載到一個工作薄對象中
wb = openpyxl.load_workbook("abc.xlsx")#第二步:選擇文件中的表單
sh = wb["login"]#第三步:讀取內(nèi)容 ,cell表示單元格
res = sh.cell(row=1, column=1) #第一行第一列
print(res.value) #打印出 111
以上就是簡單的示例:讀取某個單元格的內(nèi)容
二、數(shù)據(jù)的寫入
(單獨(dú)用的不多,不算重點(diǎn),了解即可)
關(guān)于excel數(shù)據(jù)的寫入,單獨(dú)用的不多,一般會和會面的讀取數(shù)據(jù)寫入數(shù)據(jù)一起結(jié)合用,現(xiàn)在只是單獨(dú)拿出來講解,先做個大概的了解,可以總結(jié)以下四步規(guī)律
第一步:將excel文件加載到一個工作薄對象中
wb = openpyxl.load_workbook("文件名")
第二步:選擇文件中的表單
sh = wb["表單名"]
第三步:往表格中寫入數(shù)據(jù)
sh.cell(row=行, column=值, value='寫入的值')
第四步:保存
wb.save("文件名")
注意:在往excel中,寫入數(shù)據(jù)的時候,文件不能處于一個打開的狀態(tài),否則會報錯
importopenpyxl#第一步:將excel文件加載到一個工作薄對象中
wb = openpyxl.load_workbook("abc.xlsx")#第二步:選擇文件中的表單
sh = wb["login"]#第三步:往表格中寫入數(shù)據(jù)
sh.cell(row=1, column=1, value='jack')#第四步:保存
wb.save("abc.xlsx") #打開表格看,111已經(jīng)變?yōu)閖ack
三、數(shù)據(jù)的批量讀取
比如:給你一張表格,把表格的內(nèi)容,一次性讀取出來,怎么辦?如何操作?如何用python來實(shí)現(xiàn)
importopenpyxl#第一步:將excel文件加載到一個工作薄對象中
wb = openpyxl.load_workbook("yyy.xlsx")#第二步:選擇文件中的表單
sh = wb["login"]
res=list(sh.rows)for item inres:for c initem:print(c.value, end=" ")print() #起著換行的作用
四、excel用例數(shù)據(jù)讀取組裝成列表嵌套字典的格式
先給大家看一下這張表 testcases ,
我們想把它讀取出來,轉(zhuǎn)化成開頭的那種列表中嵌套字典的模式,怎么來弄?有的同學(xué)要問,為什么要弄成那種格式,因?yàn)?#xff0c;要和ddt結(jié)合起來使用,轉(zhuǎn)化成這種格式:
方便ddt的使用,只要轉(zhuǎn)化成這個列表中嵌套字典的格式,以后可以直接套用
importopenpyxl#第一步:將excel文件加載到一個工作簿對象中
wb = openpyxl.load_workbook("testcases.xlsx")#第二步:選擇文件中的表單
sh = wb["login"]
res=list(sh.rows)#獲取第一行的單元格
title =[]#遍歷第一行所有的單元格,將格子中的值添加到列表title中
for c inres[0]:
title.append(c.value)
cases_data=[]#遍歷除第一行之外所有的行
for row in res[1:]:
data=[]for c inrow:
data.append(c.value)
item=dict(zip(title, data))
cases_data.append(item)print(cases_data)
五、excel的封裝
importopenpyxlclassExcel:def __init__(self, filename, sheet_name):
self.filename=filename
self.sheet_name=sheet_namedefread_data(self):"""讀數(shù)據(jù)"""
#第一步:將excel文件加載到一個工作簿對象中
wb =openpyxl.load_workbook(self.filename)#第二步:選擇文件中的表單
sh =wb[self.sheet_name]
res=list(sh.rows)#獲取第一行的單元格
title =[]#遍歷第一行所有的單元格,將格子中的值添加到列表title中
for c inres[0]:
title.append(c.value)
cases_data=[]#遍歷除第一行之外所有的行
for row in res[1:]:
data=[]for c inrow:
data.append(c.value)
case=dict(zip(title, data))#print(case)
cases_data.append(case)returncases_datadefwrite_data(self, row, column, value):"""寫數(shù)據(jù)"""
#第一步:將excel文件加載到一個工作簿對象中
wb =openpyxl.load_workbook(self.filename)#第二步:選擇文件中的表單
sh =wb[self.sheet_name]
sh.cell(row=row, column=column, value=value)
wb.save(self.filename)
未完待續(xù)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
總結(jié)
以上是生活随笔為你收集整理的python做excel表格代码_python操作excel表格的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows高级编程学习笔记(二)
- 下一篇: python @修饰符_python函数