python對Excel按條件進行內容補充(推薦)
阿新 • • 發佈:2020-01-09
關於xlrd/xlwt和openpyxl的差別
兩者都是對於excel檔案的操作外掛,兩者的主要區別在於寫入操作,
其中xlwt針對Ecxec2007之前的版本,即.xls檔案,其要求單個sheet不超過65535行,
而openpyxl則主要針對Excel2007之後的版本(.xlsx),它對檔案大小沒有限制。
另外還有區別就是二者在讀寫速度上的差異,xlrd/xlwt在讀寫方面的速度都要優於openpyxl,但xlwt無法生成xlsx
openpyxl的用法
官方文件
先了解下Worksheet.cell() 方法。
這提供了對使用行和列表示法的單元格的訪問:
d = ws.cell(row=4,column=2,value=10)
獲取某個單元格的資料
#通過座標讀取表格中的資料 cell_value1=sheet0.cell_value(y,x)
資料寫入
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")
資料更新
import openpyxl ''' 操作Excel
需求:資料1的內容需要資料2補充 關聯關係是都存在唯一的工號
''' def excel(): wb1 = openpyxl.load_workbook('資料1.xlsx') #路徑 sheet1 = wb1.active wb2 = openpyxl.load_workbook('資料2.xlsx') sheet2 = wb2.active for i in range(2,1211): #資料1.xlsx的資料量 id2 = sheet2.cell(i,2).value #獲取資料1唯一工號 for j in range(2,1225): #資料2.xlsx的資料量 id1 = sheet1.cell(j,2).value #獲取資料2唯一工號 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()
總結
以上所述是小編給大家介紹的python對Excel按條件進行內容補充,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回覆大家的!