希望在不改變Excel格式情況下更新Excel內(nèi)容解虱,試過好幾種庫,都需要復制出sheet摧扇,但是都沒有樣式圣贸,非常麻煩,后來找了個方法扛稽,可以直接打開Excel進行操作吁峻,而且是實時更新的,代碼也算是非常精簡了在张。
用到兩個庫:xlrd用含、xlwings
一、讀取Excel:
def readExceltoData(self,fileUrl:str):
#讀取Excel文件并轉(zhuǎn)換成分組后的list瞧掺。
data = xlrd.open_workbook(fileUrl)
table = data.sheet_by_index(0)
rows=table.nrows #返回總行數(shù)
cols=table.ncols #返回總列數(shù)
r=0
reData=[] #要返回的數(shù)組
while rows > r:
rowData = table.row_values(r) #返回指定行的整條數(shù)據(jù)
reData.append(rowData)
r +=1
return reData
二耕餐、更新Excel:
def updateExcelFile(self,id ,reality,fileUrl):
# 找到指定id凡傅,更新其中指定列的數(shù)據(jù)
try:
workbook = xlwings.Book(fileUrl) # 連接excel文件
sht=workbook.sheets('Sheet1')
rows=sht.api.UsedRange.Rows
rowN=rows.count #返回sheet有數(shù)據(jù)的行數(shù)
r = 0
while r <= rowN:
r+=1
if sht.range('A'+str(r)).value == id:
sht.range('H' + str(r)).value=str(reality)
break
workbook.save()
return 'OK'
except:
return "文件保存出錯辟狈!"