標籤:使用python讀寫操作同一個excel(xlrd xlwt xlutils)
最近開始學習python,想做做簡單的自動化測試,需要讀寫excel,然後就找到了xlrd來讀取Excel檔案,使用xlwt來產生Excel檔案(可以控制Excel中儲存格的格式),需要注意的是,用xlrd讀取excel是不能對其進行操作的:xlrd.open_workbook()方法返回xlrd.Book類型,是唯讀,不能對其進行操作。而xlwt.Workbook()返回的xlwt.Workbook類型的save(filepath)方法可以儲存excel檔案。
因此對於讀取和產生Excel檔案都非常容易處理,但是對於已經存在的Excel檔案進行修改就比較麻煩了。不過,還有一個xlutils(依賴於xlrd和xlwt)提供複製excel檔案內容和修改檔案的功能。其實際也只是在xlrd.Book和xlwt.Workbook之間建立了一個管道而已.
以下是範例程式碼:
import xlwt
import xlrd
from xlutils.copy import copy
#使用xlrd讀取指定excel工作中的指定表格的值並返回
def excel_read(doc,table,x,y):
data = xlrd.open_workbook(doc)
table = data.sheet_by_name(table)
return table.cell(x,y).value
#使用xlwt建立指定excel工作中的指定表格的值並儲存
def excel_create(sheet,value):
data = xlwt.Workbook()
table = data.add_sheet(sheet)
table.write(1,4,value)
data.save(‘demo.xls‘)
#三個結合操作同一個excel
rb = xlrd.open_workbook(‘demo.xls‘)
#管道作用
wb = copy(rb)
#通過get_sheet()擷取的sheet有write()方法
ws = wb.get_sheet(1) #1代表是寫到第幾個工作表裡,從0開始算是第一個。
ws.write(1, 6, ‘changed!‘)
wb.save(‘demo.xls‘)
使用python讀寫操作同一個excel(xlrd,xlwt,xlutils)