您好,登錄后才能下訂單哦!
關(guān)于xlrd/xlwt和openpyxl的差別
兩者都是對(duì)于excel文件的操作插件,兩者的主要區(qū)別在于寫入操作,
其中xlwt針對(duì)Ecxec2007之前的版本,即.xls文件,其要求單個(gè)sheet不超過(guò)65535行,
而openpyxl則主要針對(duì)Excel2007之后的版本(.xlsx),它對(duì)文件大小沒有限制。
另外還有區(qū)別就是二者在讀寫速度上的差異,xlrd/xlwt在讀寫方面的速度都要優(yōu)于openpyxl,但xlwt無(wú)法生成xlsx
openpyxl的用法
官方文檔
先了解下Worksheet.cell() 方法。
這提供了對(duì)使用行和列表示法的單元格的訪問(wèn):
d = ws.cell(row=4, column=2, value=10)
獲取某個(gè)單元格的數(shù)據(jù)
#通過(guò)坐標(biāo)讀取表格中的數(shù)據(jù) cell_value1=sheet0.cell_value(y,x)
數(shù)據(jù)寫入
import openpyxl import datetime wb = openpyxl.Workbook() ws = wb.active ws['A1'] = 520 ws.append([1,2,3]) ws['A3'] = datetime.datetime.now() wb.save("F:/demo.xlsx")
數(shù)據(jù)更新
import openpyxl ''' 操作Excel
需求:數(shù)據(jù)1的內(nèi)容需要數(shù)據(jù)2補(bǔ)充 關(guān)聯(lián)關(guān)系是都存在唯一的工號(hào)
''' def excel(): wb1 = openpyxl.load_workbook('數(shù)據(jù)1.xlsx') #路徑 sheet1 = wb1.active wb2 = openpyxl.load_workbook('數(shù)據(jù)2.xlsx') sheet2 = wb2.active for i in range(2, 1211): #數(shù)據(jù)1.xlsx的數(shù)據(jù)量 id2 = sheet2.cell(i, 2).value #獲取數(shù)據(jù)1唯一工號(hào) for j in range(2, 1225): #數(shù)據(jù)2.xlsx的數(shù)據(jù)量 id1 = sheet1.cell(j, 2).value #獲取數(shù)據(jù)2唯一工號(hào) if(id1 == id2): sheet1.cell(j, 5).value = sheet2.cell(i, 5).value #賦值 sheet1.cell(j, 8).value = sheet2.cell(i, 1).value sheet1.cell(j, 7).value = sheet2.cell(i, 6).value wb1.save('xg3.xlsx') #存入到一張新的excel表中 if __name__ == "__main__": excel()
總結(jié)
以上所述是小編給大家介紹的python對(duì)Excel按條件進(jìn)行內(nèi)容補(bǔ)充,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。