欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用Python3比较两份Excel表格的不同

程序员文章站 2023-11-10 22:13:04
一.前言 由于种种原因,最近手头上有两份excel表格,我给两份表格分别命名为before.xlsx和now.xlsx. before.xlsx是组长一开始发给我的表,我在上面做了很多笔记,但是下午他剔了十几行又给我一个新的表格,也就是now.xlsx,这时候我就想到使用python来比较两个表格的 ......

  一.前言

  由于种种原因,最近手头上有两份excel表格,我给两份表格分别命名为before.xlsx和now.xlsx.

  before.xlsx是组长一开始发给我的表,我在上面做了很多笔记,但是下午他剔了十几行又给我一个新的表格,也就是now.xlsx,这时候我就想到使用python来比较两个表格的不同。

  二.写代码

  1.首先,先导入库。(我用的是python3)

  

import xlrd
from xlwt import *

 

  2.定义函数。(根据文件名读取excel表格,将某一列的数据存储到一个列表中,并返回它)

def read_excel(filename):
    bk=xlrd.open_workbook(filename)
    shxrange=range(bk.nsheets)
    try:
        sh=bk.sheet_by_name("sheet1")#根据sheet1名字确定表格内容
    except:
        print ("代码出错")
    nrows=sh.nrows #获取行数
    li=[]
#定义一个空列表,以存储第二列的数据(哪一列都行,只要它具有唯一性)
    for i in range(1,nrows):
#对表格用行数进行遍历,存储到刚刚定义的li列表中,并返回它
        row_data=sh.row_values(i)
        value=sh.cell_value(i,1)
        li.append(value)
        return li

  3.对函数进行调用,两个文件名得到两个列表,对比两个列表的不同,存储到第三个列表中。(这个列表就是我们需要剔除的内容)

list1=list2=list3=list4=[]       
list1=read_excel('before.xlsx')
list2=read_excel('now.xlsx')
for i in list1:
    for j in list2:
        if i == j:
            list3.append(i)
 
for b in (list1 + list2):
    if b not in list3:
        list4.append(b) 
print(list3)#list3=list4,随意打印哪一个都行