溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在python 中使用pyqt5和openpyxl統(tǒng)計(jì)符合要求的名單

發(fā)布時(shí)間:2021-05-26 09:19:30 來(lái)源:億速云 閱讀:220 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章給大家介紹怎么在python 中使用pyqt5和openpyxl統(tǒng)計(jì)符合要求的名單,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

 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)前所有的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)

這樣一波操作,unstudystudent中就是要給團(tuán)支書的未學(xué)習(xí)名單了!

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

下面是代碼

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()

打包需要先下載一個(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_workbook


def 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 sys
from PyQt5.QtWidgets import (QWidget, QTextEdit, QFileDialog, QApplication, QHBoxLayout, QVBoxLayout, QPushButton)
from PyQt5.QtGui import QIcon
import main


class 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 中使用pyqt5和openpyxl統(tǒng)計(jì)符合要求的名單

python可以做什么

Python是一種編程語(yǔ)言,內(nèi)置了許多有效的工具,Python幾乎無(wú)所不能,該語(yǔ)言通俗易懂、容易入門、功能強(qiáng)大,在許多領(lǐng)域中都有廣泛的應(yīng)用,例如最熱門的大數(shù)據(jù)分析,人工智能,Web開發(fā)等。

關(guān)于怎么在python 中使用pyqt5和openpyxl統(tǒng)計(jì)符合要求的名單就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI