python對Excel按條件進行內容補充(推薦)
關于xlrd/xlwt和openpyxl的差別
兩者都是對于excel文件的操作插件,兩者的主要區(qū)別在于寫入操作,
其中xlwt針對Ecxec2007之前的版本,即.xls文件,其要求單個sheet不超過65535行,
而openpyxl則主要針對Excel2007之后的版本(.xlsx),它對文件大小沒有限制。
另外還有區(qū)別就是二者在讀寫速度上的差異,xlrd/xlwt在讀寫方面的速度都要優(yōu)于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按條件進行內容補充,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
相關文章
python GUI庫圖形界面開發(fā)之PyQt5 MDI(多文檔窗口)QMidArea詳細使用方法與實例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5 MDI(多文檔窗口)QMidArea詳細使用方法與實例,需要的朋友可以參考下2020-03-03
python3+PyQt5+Qt Designer實現堆疊窗口部件
這篇文章主要為大家詳細介紹了python3+PyQt5+Qt Designer實現堆疊窗口部件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04

