應用場景:
公司里會有這樣的場景:公司有一個系統的數據需要根據excel表中數據進行維護,但數據量比較大,此時就需要對系統數據與Excel中數據進行比對,人工核對工作量太大並且容易出錯,這時可以將系統數據導出到Excel中,然后將兩個Excel數據進行比對?
運行效果如下:
表一和表二對應位置數據數據不一致進行黃底標注,這樣就很容易知道哪些數據存在差異,這里要保證兩張表的數據結構相同
實現步驟
導入模塊
#導入模塊 openpyxl
from openpyxl.styles import PatternFill
from openpyxl.styles import colors
from openpyxl.styles import Font
import openpyxl as vb
讀取兩張表中的數據
url_a=r'D:\1.xlsx'
url_b=r'D:\2.xlsx'
workbook_a = vb.load_workbook(url_a)
workbook_b = vb.load_workbook(url_b)
sheet_a = workbook_a['Sheet1']
sheet_b = workbook_b['Sheet1']
maxrow = sheet_a.max_row
maxcolumn = sheet_b.max_column
遍歷兩張表中所有的單元格
for i in range(1,maxrow):
for j in range(1,maxcolumn):
cell_a=sheet_a.cell(i,j)
cell_b = sheet_b.cell(i, j)
比較對應單元格的數據
如果數值不同就藍色加粗並標注黃色底色
if cell_a.value!=cell_b.value:
print(cell_a.value)
print(cell_b.value)
cell_a.fill = PatternFill("solid", fgColor="FFFF00")
cell_a.font = Font(color=colors.BLUE,bold=True)
cell_b.fill = PatternFill("solid", fgColor="FFFF00")
cell_b.font = Font(color=colors.BLUE,bold=True)
保存數據
workbook_a.save(url_a)
workbook_b.save(url_b)
當然我們可以利用pyinstaller將程序打包成exe文件,這樣就可以在windows系統電腦上直接運行