一个备忘录,几乎没怎么用过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