今天分享Python与Excel结合的一个小案例,也是工作上用到的。

领导给了我一个含有183个用户名字的Excel表格和一个装有156个规则命名但需要修改的图片的文件夹,让我通过156个jpg图去对照183个用户名字,把没有图的名字标记出来,然后再从一个巨大的表里找这些标记的名字对应的编号,最后进内部系统去找到里面的图。

那么我要做的事情就有以下几个:

1、用Python把Excel表格导入Jupyter

2、从OS系统提取文件夹里面的文件名并形成list

3、用replace将不规则的文件名修正

4、导出list,并将txt文件里面的名字复制到新建的Excel表格中

5、在Excel里面使用Vlookup函数进行匹配,对比两组名字,匹配成功的名字标红

6、继续用Vlookup函数与巨大的表进行匹配,查出对应的编号

7、进内部系统去找到里面的图

OK,那咱们开始吧!

1)导入OS文件夹数据并提取list

# 导入os模块
import os

# path定义要获取的文件名称的目录(C盘除外)
path = "D:\所有用户的图片"

# os.listdir()方法获取文件夹名字,返回数组
file_name_list = os.listdir(path)


file_name_list

通过这个代码,得出以下列表

用python实现excel数据匹配 python excel 数据匹配_excel

2)导入pandas包,读取表格的内容

# pd.options.display.precision=999 
import pandas as pd
df = pd.read_excel(r"D:\所有住房\大蒙村2022年日常工作计划【最新】.xlsx",header=1)
print(df.shape)

df.head()

通过这个代码,得出以下显示

用python实现excel数据匹配 python excel 数据匹配_pandas_02

3)使用replace函数修正列表内容

file_name = str(file_name_list)
file_name = file_name.replace("[", "").replace("]", "").replace("(2)", "").replace("'", "").replace(",", "\n").replace(" ", "").replace(".jpg", "").replace("大蒙村三家寨","").replace("大蒙村半岭屯","").replace("大蒙村小蒙屯","").replace("大蒙村白瓜屯","").replace("大蒙村纳冷屯","").replace("大蒙村纳冷","")
file_name

通过这个代码,得出以下显示

用python实现excel数据匹配 python excel 数据匹配_文件名_03

4)将文件名写入到"文件list.txt"并保存

f = open(path + "\\" + "文件list.txt", "a")

# 将文件下名称写入到"文件list.txt"
f.write(file_name)
f.close()

5)打开"文件list.txt",把里面多余的一些东西剔除掉重新保存

6)复制txt的内容到新建的Excel表格中

7)在183用户名单表里使用Vlookup函数与新建的表进行匹配

=VLOOKUP(B2,'C:\Users\Lenovo\Desktop\[新建的表.xlsx]Sheet1'!$B$2:$C$155,2,0)

8)筛选出“#N/A”的行进行标红

9)在183用户名单表里使用Vlookup函数与巨大的表进行匹配,获得用户编号

=VLOOKUP(B2,'C:\Users\Lenovo\Desktop\[巨大的表.xlsx]Sheet1'!$J:$K,2,0)

10)最后进内部系统查找出想要的图

今天其实是可以用Python进行到完美匹配的,但是时间紧任务重,我久不用Python手都生疏了,情急之下跟Excel相结合,效果也不错,总好过一个个去查找,估计找完也瞎了,哈哈。