成人视屏在线观看-国产99精品-国产精品1区2区-欧美一级在线观看-国产一区二区日韩-色九九九

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python 辦公自動(dòng)化——基于pyqt5和openpyxl統(tǒng)計(jì)符合要求的名單

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

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

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

這樣studyedstudent列表中就是本期已學(xué)習(xí)的名單了

我又向團(tuán)支書要了我們班的團(tuán)員表,同樣用該方法讀出了我們班的團(tuán)員,我將他放入一個(gè)列表中,當(dāng)常量來(lái)用。

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

下面是python代碼

wb = load_workbook(xlsx_path)sheets = wb.worksheets # 獲取當(dāng)前所有的sheetmyclassstudent = [’陳榮森’, ’鄧京銳’, ’鄧文凱’, ’何江偉’, ’何錦勝’, ’李春江’, ’李錦科’, ’廖金威’, ’廖鈞濠’, ’林榮添’, ’劉繼洪’, ’羅煒芊’, ’麥洋華’, ’彭浩林’, ’唐愛萍’, ’涂駿’, ’冼東潮’, ’肖華鋒’, ’謝澤琛’, ’楊?yuàn)^發(fā)’, ’張杰森’, ’鄭佳浩’, ’植美麟’, ’周天寶’]# 24團(tuán)員# 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中就是要給團(tuán)支書的未學(xué)習(xí)名單了!

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

下面是代碼

wb = load_workbook(xlsx_path)sheets = wb.worksheets # 獲取當(dāng)前所有的sheetmyclassstudent = [’陳榮森’, ’鄧京銳’, ’鄧文凱’, ’何江偉’, ’何錦勝’, ’李春江’, ’李錦科’, ’廖金威’, ’廖鈞濠’, ’林榮添’, ’劉繼洪’, ’羅煒芊’, ’麥洋華’, ’彭浩林’, ’唐愛萍’, ’涂駿’, ’冼東潮’, ’肖華鋒’, ’謝澤琛’, ’楊?yuàn)^發(fā)’, ’張杰森’, ’鄭佳浩’, ’植美麟’, ’周天寶’]# 24團(tuán)員# 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(’大學(xué)習(xí)未完成名單.txt’, ’w’)for i in unstudyedstudent: file.write(i) file.write(’n’)file.close()

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

但是這是個(gè)小黑板使用起來(lái)不太方便,我決定做一個(gè)GUI,我就用了我最近在學(xué)的pyqt5。

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

from openpyxl import load_workbookdef getnostudytxt(xlsx_path): wb = load_workbook(xlsx_path) sheets = wb.worksheets # 獲取當(dāng)前所有的sheet myclassstudent = [’陳榮森’, ’鄧京銳’, ’鄧文凱’, ’何江偉’, ’何錦勝’, ’李春江’, ’李錦科’, ’廖金威’, ’廖鈞濠’, ’林榮添’, ’劉繼洪’, ’羅煒芊’, ’麥洋華’, ’彭浩林’, ’唐愛萍’, ’涂駿’, ’冼東潮’, ’肖華鋒’, ’謝澤琛’, ’楊?yuàn)^發(fā)’, ’張杰森’, ’鄭佳浩’, ’植美麟’, ’周天寶’] # 24團(tuán)員 # 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(’大學(xué)習(xí)未完成名單.txt’, ’w’) for i in unstudyedstudent:file.write(i)file.write(’n’) file.close() return unstudyedstudent

接下來(lái)是寫界面,不妨命名為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('青年大學(xué)習(xí)獲取未學(xué)習(xí)名單')self.setWindowIcon(QIcon('head.ico'))self.show() def showDialog(self):# 彈出文件選擇器fname = QFileDialog.getOpenFileName(self, 'Open file')# 如果選擇了文件if fname[0]: # 打開第一個(gè)文件 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_())

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

最終項(xiàng)目就做完了!

python 辦公自動(dòng)化——基于pyqt5和openpyxl統(tǒng)計(jì)符合要求的名單

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

最后還有一個(gè)小bug,那就是pyqt5窗口的圖標(biāo)不展示的問題,這個(gè)有知道的大佬還請(qǐng)指出解決辦法!

以上就是python 辦公自動(dòng)化——基于pyqt5和openpyxl統(tǒng)計(jì)符合要求的名單的詳細(xì)內(nèi)容,更多關(guān)于python 自動(dòng)化統(tǒng)計(jì)名單的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 日韩一级黄色毛片 | 3级毛片 | 亚洲一级毛片免观看 | 99国产在线播放 | 日韩一级精品视频在线观看 | 欧美一区二区三区四区在线观看 | 欧美高清色视频在线播放 | 欧美一级xxx | 国产成人爱片免费观看视频 | 欧美一区二区三区免费看 | 亚洲精品一区二区三区 | 欧美一区二区三区在线视频 | 黑人黄色毛片 | 精品国产欧美精品v | 欧美日韩视频二区三区 | 国产网站免费视频 | 精品欧美一区二区三区在线观看 | 爽爽爽爽爽爽a成人免费视频 | 国产一级性生活 | 一区二区国产精品 | 欧美操人 | 免费一级特黄 | 欧美成年免费a级 | 日美三级 | 欧美成人伊人十综合色 | 美国一级片在线观看 | 一级黄色α片 | 成人18免费网站在线观看 | 久久狠狠| 97免费在线观看视频 | 亚洲国产精品a一区二区三区 | 久久久精品一区二区三区 | 日本一区二区三区四区不卡 | 亚洲国产韩国一区二区 | 99国产国人青青视频在线观看 | 久久99免费视频 | 亚洲你我色 | 神马最新午夜限制片 | 亚洲综合天堂网 | 国产成人久久综合二区 | 国产精品自在线天天看片 |