首页 > 编程语言 >python 操作Excel表格 (筛选一个表格相比另一个表格缺少的元素)

python 操作Excel表格 (筛选一个表格相比另一个表格缺少的元素)

时间:2023-01-07 22:12:30浏览次数:56  
标签:表格 python Excel workbook 表中 print input 输入

一个备忘录,几乎没怎么用过excel,也不知道它是不是自带这个功能了,大致需求就是,一个表格里有全体学生的姓名,另外一个表格里有及格的学生的姓名,但是想要找出不及格的学生的姓名,也就是说,需要搞两个集合,全体学生的集合和及格学生的集合,前者与后者之差得出的新集合即是不及格的学生的集合。

首先需要安装一个库:openpyxl

pip install openpyxl

然后搞一个试验的表格吧,假设这个表格内就是全体学生的姓名,取名为test1.xlsx,然后再建一个表格,假设这个表里放的是及格的学生的姓名,取名为test2.xlsx,随便捏点数据放进去:

test1中的名字组成的集合减去test2中的名字组成的集合就是不及格的学生集合了

import os
import time
import openpyxl


print("查询两个Excel表中数据的差别")
print("如:第一个表中有全体学生的姓名,"+
      "第二个表中有部分学生的姓名\n"+
      "筛查出第一个表中究竟有哪些学生在第二个表中没有\n"+
      "#################################################\n"+
      "接下来需要定位元素在表中的位置")
print("第一个表:")
path1=input(r"输入第一个表的路径,(如 C:\Users\liyizhe\Desktop):")
name1=input(r"输入第一个表的名字,(如 test1.xlsx):")
print("输入列号与行号,如单元格A6,列号为A,行号为6")
column1=input("输入要查询的列号(A,B,C,D...):")
print("------")
row11=input("输入开始的行号(1,2,3,4...):")
row12=input("输入结尾的行号:")
print("*******************************************************************")
print("第二个表:")
path2=input(r"输入第二个表的路径,(如 C:\Users\liyizhe\Desktop):")
name2=input(r"输入第二个表的名字,(如 test1.xlsx):")
print("输入列号与行号,如单元格A6,列号为A,行号为6")
column2=input("输入要查询的列号(A,B,C,D...):")
print("------")
row21=input("输入开始的行号(1,2,3,4...):")
row22=input("输入结尾的行号:")
print("*******************************************************************")

os.chdir(path1)# 修改工作路径
workbook = openpyxl.load_workbook(name1)  # 返回一个workbook数据类型的值
sheet1 = workbook.active     # 获取活动表

set1=set()
for i in range(int(row11),int(row12)+1):
    set1.add(sheet1[column1+str(i)].value)
print("第一个表里的元素:")
print(set1)


os.chdir(path2)  # 修改工作路径

workbook = openpyxl.load_workbook(name2)  # 返回一个workbook数据类型的值
sheet2 = workbook.active     # 获取活动表
set2=set()
for i in range(int(row21),int(row22)+1):
    set2.add(sheet2[column2+str(i)].value)
print("第二个表里的元素:")
print(set2)
print("#############################")
set3=set1-set2#俩集合一相减得出差集
print("第一个表中有而第二个表中没有的元素:")
print(set3)

time.sleep(100)#打包成exe后程序执行完直接自动退出了,给设置一个sleep函数就能保留住窗口100s了

一般需要获取某行某列单元格的数据时,可以这样写:

import os
import openpyxl

path = r"C:\Users\liyizhe\Desktop"
os.chdir(path)  # 修改工作路径

workbook = openpyxl.load_workbook('test1.xlsx')  # 返回一个workbook数据类型的值
sheet = workbook.active     # 获取活动表
print(sheet.dimensions)     # 获取表格的尺寸大小

cell1 = sheet['D6']         # 获取D6单元格的数据
print(cell.value)

因为要处理的表格并不在自己电脑上,而另外一台电脑上并没有安装python,所以接下来将python代码打包成.exe后缀的可执行文件,在别人的电脑上双击即可运行的那种。

安装pyinstaller:

pip install pyinstaller

跳转到python脚本所在的目录

cd C:\Users\xxxxxx\Desktop

输入指令打包脚本

pyinstaller -F ElementFiltering.py

(-F参数表示覆盖打包,这样在打包时,不管我们打包几次,都是最新的,这个记住就行,固定命令。)

然后在py脚本相同的目录下会出现dist,build之类的文件夹和文件,这些都先不用管,直接去dist下找到与py脚本文件同名的.exe可执行文件,将这个可执行文件扔到其他电脑上一样可以执行程序。

以前没怎么试过用python处理excel之类的,现在感觉能干的东西应该挺多的,以后有什么需要重复机械的校对工作还拿python搞就好了

标签:表格,python,Excel,workbook,表中,print,input,输入
From: https://www.cnblogs.com/soaring27221/p/17033658.html

相关文章