电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python 辦公自動化——基于pyqt5和openpyxl統計符合要求的名單

瀏覽:46日期:2022-06-18 13:10:29

首先,那肯定是用python獲取學校發下來的未學習名單,但是我忘記我之前用什么來操作辦公軟件了(最后項目作出來的時候才想起來是pandas),我就上網搜了一下,試了很多庫但是都不支持xlsx文件格式(只支持最老版本的xls),最終openpyxl成功的讀取了xlsx文件,于是我就用了openpyxl庫來讀取文件,下面是python代碼

studyedstudent = [] wb = load_workbook(xlsx_path) sheets = wb.worksheets # 獲取當前所有的sheet sheet1 = sheets[0] for col in sheet1[’A’]: studyedstudent.append(col.value)

這樣studyedstudent列表中就是本期已學習的名單了

我又向團支書要了我們班的團員表,同樣用該方法讀出了我們班的團員,我將他放入一個列表中,當常量來用。

剩下的就是遍歷我們班團員,看一下團員是否在已學習的名單中,如果不在,則將該團員放入另一個列表(未學習名單中)

下面是python代碼

wb = load_workbook(xlsx_path)sheets = wb.worksheets # 獲取當前所有的sheetmyclassstudent = [’陳榮森’, ’鄧京銳’, ’鄧文凱’, ’何江偉’, ’何錦勝’, ’李春江’, ’李錦科’, ’廖金威’, ’廖鈞濠’, ’林榮添’, ’劉繼洪’, ’羅煒芊’, ’麥洋華’, ’彭浩林’, ’唐愛萍’, ’涂駿’, ’冼東潮’, ’肖華鋒’, ’謝澤琛’, ’楊奮發’, ’張杰森’, ’鄭佳浩’, ’植美麟’, ’周天寶’]# 24團員# print(len(myclassstudent))# 獲取第一張sheetsheet1 = sheets[0]studyedstudent = []for col in sheet1[’A’]: studyedstudent.append(col.value)# print(studyedstudent)unstudyedstudent = []for i in myclassstudent: if i not in studyedstudent:unstudyedstudent.append(i)

這樣一波操作,unstudystudent中就是要給團支書的未學習名單了!

但是鑒于使用者可能沒有python環境,所以我決定將unstudystudent寫入一個txt文件中,并且將代碼打包成exe文件。

下面是代碼

wb = load_workbook(xlsx_path)sheets = wb.worksheets # 獲取當前所有的sheetmyclassstudent = [’陳榮森’, ’鄧京銳’, ’鄧文凱’, ’何江偉’, ’何錦勝’, ’李春江’, ’李錦科’, ’廖金威’, ’廖鈞濠’, ’林榮添’, ’劉繼洪’, ’羅煒芊’, ’麥洋華’, ’彭浩林’, ’唐愛萍’, ’涂駿’, ’冼東潮’, ’肖華鋒’, ’謝澤琛’, ’楊奮發’, ’張杰森’, ’鄭佳浩’, ’植美麟’, ’周天寶’]# 24團員# print(len(myclassstudent))# 獲取第一張sheetsheet1 = sheets[0]studyedstudent = []for col in sheet1[’A’]: studyedstudent.append(col.value)# print(studyedstudent)unstudyedstudent = []for i in myclassstudent: if i not in studyedstudent:unstudyedstudent.append(i)file = open(’大學習未完成名單.txt’, ’w’)for i in unstudyedstudent: file.write(i) file.write(’n’)file.close()

打包需要先下載一個打包的庫打開cmd 輸入“pip install Pyinstaller”即可,然后再cmd中進入要打包的文件夾,輸入“Pyinstaller -F main.py”等待打包即可,main.py是我要打包的文件名字。

但是這是個小黑板使用起來不太方便,我決定做一個GUI,我就用了我最近在學的pyqt5。

首先把main文件封裝成函數,下面是main.py的代碼

from openpyxl import load_workbookdef getnostudytxt(xlsx_path): wb = load_workbook(xlsx_path) sheets = wb.worksheets # 獲取當前所有的sheet myclassstudent = [’陳榮森’, ’鄧京銳’, ’鄧文凱’, ’何江偉’, ’何錦勝’, ’李春江’, ’李錦科’, ’廖金威’, ’廖鈞濠’, ’林榮添’, ’劉繼洪’, ’羅煒芊’, ’麥洋華’, ’彭浩林’, ’唐愛萍’, ’涂駿’, ’冼東潮’, ’肖華鋒’, ’謝澤琛’, ’楊奮發’, ’張杰森’, ’鄭佳浩’, ’植美麟’, ’周天寶’] # 24團員 # print(len(myclassstudent)) # 獲取第一張sheet sheet1 = sheets[0] studyedstudent = [] for col in sheet1[’A’]:studyedstudent.append(col.value) # print(studyedstudent) unstudyedstudent = [] for i in myclassstudent:if i not in studyedstudent: unstudyedstudent.append(i) file = open(’大學習未完成名單.txt’, ’w’) for i in unstudyedstudent:file.write(i)file.write(’n’) file.close() return unstudyedstudent

接下來是寫界面,不妨命名為ui.py,下面是代碼。

import sysfrom PyQt5.QtWidgets import (QWidget, QTextEdit, QFileDialog, QApplication, QHBoxLayout, QVBoxLayout, QPushButton)from PyQt5.QtGui import QIconimport mainclass Example(QWidget): def __init__(self):super().__init__()self.initUI() def initUI(self):okButton = QPushButton('選擇文件')self.textEdit = QTextEdit()okButton.clicked.connect(self.showDialog)vvbox = QVBoxLayout()vvbox.addWidget(okButton)vvbox.addStretch(1)hbox = QHBoxLayout()hbox.addLayout(vvbox)hbox.addWidget(self.textEdit)vbox = QVBoxLayout()vbox.addLayout(hbox)self.setLayout(vbox)self.setGeometry(300, 300, 350, 300)self.setWindowTitle('青年大學習獲取未學習名單')self.setWindowIcon(QIcon('head.ico'))self.show() def showDialog(self):# 彈出文件選擇器fname = QFileDialog.getOpenFileName(self, 'Open file')# 如果選擇了文件if fname[0]: # 打開第一個文件 f = open(fname[0], 'r') print(f.name) mylist = main.getnostudytxt(f.name) print(mylist) for i in mylist:self.textEdit.append(i)if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())

最后就是打包了,這次要打包的是窗口文件,所以打包的指令中要多加一個-w,而且我給打包后的文件添加了一個圖標(head.ico),所以輸入“Pyinstaller -F -w -i head.ico ui.py”。

最終項目就做完了!

python 辦公自動化——基于pyqt5和openpyxl統計符合要求的名單

代碼我已經提交到github上,如果想瞅瞅源碼可以上我的github上看看:xddno1/python_student_big_study: 青年大學習檢查未學習名單的python腳本 (github.com)

最后還有一個小bug,那就是pyqt5窗口的圖標不展示的問題,這個有知道的大佬還請指出解決辦法!

以上就是python 辦公自動化——基于pyqt5和openpyxl統計符合要求的名單的詳細內容,更多關于python 自動化統計名單的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 点焊机-缝焊机-闪光对焊机-电阻焊设备生产厂家-上海骏腾发智能设备有限公司 | 高清视频编码器,4K音视频编解码器,直播编码器,流媒体服务器,深圳海威视讯技术有限公司 | 企业管理培训,企业培训公开课,企业内训课程,企业培训师 - 名课堂企业管理培训网 | Maneurop/美优乐压缩机,活塞压缩机,型号规格,技术参数,尺寸图片,价格经销商 | 昆山新莱洁净应用材料股份有限公司-卫生级蝶阀,无菌取样阀,不锈钢隔膜阀,换向阀,离心泵 | 耐酸泵,耐酸泵厂家-淄博华舜耐腐蚀真空泵 | 洗瓶机厂家-酒瓶玻璃瓶冲瓶机-瓶子烘干机-封口旋盖压盖打塞机_青州惠联灌装机械 | 智慧旅游_智慧景区_微景通-智慧旅游景区解决方案提供商 | 宠物店加盟_宠物连锁店_开宠物店-【派多格宠物】 | 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 | 卓能JOINTLEAN端子连接器厂家-专业提供PCB接线端子|轨道式端子|重载连接器|欧式连接器等电气连接产品和服务 | 宠物店加盟_宠物连锁店_开宠物店-【派多格宠物】 | 长沙发电机-湖南发电机-柴油发电机供应厂家-长沙明邦智能科技 | 棕刚玉_白刚玉_铝酸钙-锐石新材料| 防渗土工膜|污水处理防渗膜|垃圾填埋场防渗膜-泰安佳路通工程材料有限公司 | 建筑资质代办_工程施工资质办理_资质代办公司_北京众聚企服 | 精密模具制造,注塑加工,吹塑和吹瓶加工,EPS泡沫包装生产 - 济南兴田塑胶有限公司 | 肉嫩度仪-凝胶测试仪-国产质构仪-气味分析仪-上海保圣实业发展有限公司|总部 | 三轴曲线机-端子插拔力试验机|华杰仪器 | 标准光源箱|对色灯箱|色差仪|光泽度仪|涂层测厚仪_HRC大品牌生产厂家 | 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 六维力传感器_三维力传感器_二维力传感器-南京神源生智能科技有限公司 | 锯边机,自动锯边机,双面涂胶机-建业顺达机械有限公司 | 济南品牌设计-济南品牌策划-即合品牌策划设计-山东即合官网 | 杭州可当科技有限公司—流量卡_随身WiFi_AI摄像头一站式解决方案 | 光栅尺_Magnescale探规_磁栅尺_笔式位移传感器_苏州德美达 | 航空连接器,航空插头,航空插座,航空接插件,航插_深圳鸿万科 | 宁夏档案密集柜,智能密集柜,电动手摇密集柜-盛隆柜业宁夏档案密集柜厂家 | CCE素质教育博览会 | CCE素博会 | 教育展 | 美育展 | 科教展 | 素质教育展 | 润滑脂-高温润滑脂-轴承润滑脂-食品级润滑油-索科润滑油脂厂家 | 黄石东方妇产医院_黄石妇科医院哪家好_黄石无痛人流医院 | 布袋除尘器|除尘器设备|除尘布袋|除尘设备_诺和环保设备 | 恒温恒湿试验箱厂家-高低温试验箱维修价格_东莞环仪仪器_东莞环仪仪器 | 气动隔膜阀_气动隔膜阀厂家_卫生级隔膜阀价格_浙江浙控阀门有限公司 | 德国进口电锅炉_商用电热水器_壁挂炉_电采暖器_电热锅炉[德国宝] | 注塑机-压铸机-塑料注塑机-卧式注塑机-高速注塑机-单缸注塑机厂家-广东联升精密智能装备科技有限公司 | 酒精检测棒,数显温湿度计,酒安酒精测试仪,酒精检测仪,呼气式酒精检测仪-郑州欧诺仪器有限公司 | 对辊式破碎机-对辊制砂机-双辊-双齿辊破碎机-巩义市裕顺机械制造有限公司 | 百方网-百方电气网,电工电气行业专业的B2B电子商务平台 | 建筑工程资质合作-工程资质加盟分公司-建筑资质加盟 | EFM 022静电场测试仪-套帽式风量计-静电平板监测器-上海民仪电子有限公司 |