xlrd库可以用来对Excel表进行读取操作,包括表格中的行数、列数及内容等。
此处有两张表,内容如下:
第一张表中有161行,第二张表中有103行,两张表中有重复内容,需要把这些重复内容整合一下合成一张总表。
操作思路:对比某一项(具有唯一性)的值,把相同的列出来,相同的即是重复的。
操作开始:
引入库文件
import xlrd
创建三个空列表,用于存储表中读取到的数据
sheet1_data[]
sheet2_data[]
repeat_data[]
用xlrd的open_workbook方法打开需要读取的工作表
workbook=xlrd.open_workbook('C:/Users/15825/Desktop/日常/省分行/wifi.xlsx')
用sheet_by_name属性定位需要打开的工作表
sheet1=workbook.sheet_by_name('Sheet1')
sheet2=workbook.sheet_by_name('Sheet2')
由于需要根据表的行数进行遍历,所以需要获取到表格中的行数
nrow1=sheet1.nrows
nrow2=sheet1.nrows
用循环进行遍历,把需要的内容读取到列表中,由于程序中是从0开始,所以第0行是表头,内容从第一行开始,所以从第一行开始遍历
for i in range(1,nrow1): //从第一行开始遍历
row_data1=sheet1.row_values(i)[2] //以固定列数的方法固定遍历的内容,如只取ip地址
sheet1_data.append(row_data1) //用列表的append方法把遍历的数据尾加入放到列表里,自此获取到表一的第三列数据
相同方法遍历出表二的第三列数据放入sheet2_data列表中
for j in range(1,nrow2):
row_data2=sheet2.row_values(j)[2]
sheet2_data.append(row_data2)
循环找出列表中相同的内容,并把值放入到repeat_data列表中,打印出repeat_data的内容
for x in sheet1_data: //x从sheet1_data列表中开始遍历
for y in sheet2_data: //y从sheet2_data列表中开始遍历
if x==y: 判断x和y是否相同,相同则放入repeat_data列表中
repeat_data.append(x)
输出repeat_data内容
print(repeat_data)
效果如下: