1. 程式人生 > 程式設計 >python對Excel按條件進行內容補充(推薦)

python對Excel按條件進行內容補充(推薦)

關於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按條件進行內容補充,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回覆大家的!