五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動(dòng)態(tài)

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

發(fā)布日期:2022-04-07 12:37 | 文章來(lái)源:gibhub

首先,那肯定是用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)前所有的sheet
myclassstudent = ['陳榮森', '鄧京銳', '鄧文凱', '何江偉', '何錦勝', '李春江', '李錦科', '廖金威', '廖鈞濠', '林榮添', '劉繼洪', '羅煒芊', '麥洋華', '彭浩林', '唐愛(ài)萍', '涂駿', '冼東潮', '肖華鋒', '謝澤琛', '楊?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í)名單了!

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

下面是代碼

wb = load_workbook(xlsx_path)
sheets = wb.worksheets  # 獲取當(dāng)前所有的sheet
myclassstudent = ['陳榮森', '鄧京銳', '鄧文凱', '何江偉', '何錦勝', '李春江', '李錦科', '廖金威', '廖鈞濠', '林榮添', '劉繼洪', '羅煒芊', '麥洋華', '彭浩林', '唐愛(ài)萍', '涂駿', '冼東潮', '肖華鋒', '謝澤琛', '楊?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ù)打開(kāi)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 = ['陳榮森', '鄧京銳', '鄧文凱', '何江偉', '何錦勝', '李春江', '李錦科', '廖金威', '廖鈞濠', '林榮添', '劉繼洪', '羅煒芊', '麥洋華', '彭浩林', '唐愛(ài)萍', '涂駿', '冼東潮', '肖華鋒', '謝澤琛', '楊?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]:
# 打開(kāi)第一個(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)目就做完了!

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

最后還有一個(gè)小bug,那就是pyqt5窗口的圖標(biāo)不展示的問(wèn)題,這個(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)注本站其它相關(guān)文章!

海外穩(wěn)定服務(wù)器

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開(kāi)通

自選配置、實(shí)時(shí)開(kāi)通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問(wèn)服務(wù)

1對(duì)1客戶咨詢顧問(wèn)

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部