<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
日常工作中需要對比兩個Excel工作表中的資料差異是很不方便的,使用python來做就比較簡單了!
我們的思路是通過讀取兩個Excel的資料,採用逐個遍歷對比同一個位置的兩個單元格如果不是相同的則打上對應的標記,處理完成後再另存為Excel檔案。
既然是對每個單元格的操作那肯定離不開openpyxl模組,沒有的話使用pip的方式安裝一下即可。
pip install openpyxl
接著我們準備讀取兩個需要對比的Excel資料內容,這裡準備的是data1.xlsx和data2.xlsx作為源資料使用。
然後,將openpyxl模組及其所需要的樣式填充/文字設定相關的物件匯入。
# It imports the PatternFill class from the openpyxl.styles module. from openpyxl.styles import PatternFill # It imports the colors class from the openpyxl.styles module. from openpyxl.styles import colors # It imports the Font class from the openpyxl.styles module. from openpyxl.styles import Font # It imports the openpyxl module and renames it as pxl. import openpyxl as pxl
下面使用openpyxl模組的load_workbook函數讀取到Excel檔案物件,並提取兩個Excel檔案中'Sheet1'工作表作為源資料。
# It loads the data1.xlsx file and assigns it to the workbook_1 variable. workbook_1 = pxl.load_workbook(r'data1.xlsx') # It loads the data2.xlsx file and assigns it to the workbook_2 variable. workbook_2 = pxl.load_workbook(r'data2.xlsx') # Assigning the Sheet1 object to the workbook_1_sheet_1 variable. workbook_1_sheet_1 = workbook_1['Sheet1'] # It assigns the Sheet1 object to the workbook_2_sheet_1 variable. workbook_2_sheet_1 = workbook_2['Sheet1']
提取兩個工作表中的最大行和最大列,這樣即使兩個表的行數和列數不一致也能完全找出不同的單元格資料。
# A ternary operator. It is equivalent to: max_row = workbook_1_sheet_1.max_row if workbook_1_sheet_1.max_row > workbook_2_sheet_1.max_row else workbook_2_sheet_1.max_row # A ternary operator. It is equivalent to: max_column = workbook_1_sheet_1.max_column if workbook_1_sheet_1.max_column > workbook_2_sheet_1.max_column else workbook_2_sheet_1.max_column
使用for迴圈的方式分別遍歷行資料和列資料,然後判斷對應單元格的資料值是否相等,若是不相等則打上標記。
for i in range(1, (max_row + 1)): for j in range(1, (max_column + 1)): cell_1 = workbook_1_sheet_1.cell(i, j) cell_2 = workbook_2_sheet_1.cell(i, j) if cell_1.value != cell_2.value: cell_1.fill = PatternFill("solid", fgColor='FFFF00') cell_1.font = Font(color=colors.BLACK, bold=True) cell_2.fill = PatternFill("solid", fgColor='FFFF00') cell_2.font = Font(color=colors.BLACK, bold=True)
最後將對比處理完成後的工作表物件使用save函數進行儲存即可。
# It saves the workbook_1 object to the data3.xlsx file. workbook_1.save('data3.xlsx') # It saves the workbook_2 object to the data4.xlsx file. workbook_2.save('data4.xlsx')
下面是通過對比差異化處理後的data3.xlsx和data4.xlsx的工作表資料。
從結果來看,即使是兩個表的資料行數不一致也能對比出差異資料並打上了標記。
到此這篇關於Python實現對比兩個Excel資料內容並標記出不同的文章就介紹到這了,更多相關Python對比Excel資料內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45