



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第基于PyQt5制作Excel文件數據去重小工具form.addRow(self.file_paths,self.file_paths_btn)
form.addRow(self.colums_label,self.colums_text)
self.work=DataWork(self)
self.work.trigger.connect(self.update_log)
self.work.finished.connect(self.finished)
vbox=QVBoxLayout()
self.start_btn=QPushButton()
self.start_btn.setText('開始執行')
self.start_btn.clicked.connect(self.start_btn_click)
vbox.addLayout(form)
vbox.addWidget(self.start_btn)
hbox=QHBoxLayout()
hbox.addWidget(self.brower)
hbox.addLayout(vbox)
self.setLayout(hbox)
deffile_paths_btn_click(self):
paths=QFileDialog.getOpenFileNames(self,'選擇文件',os.getcwd(),'ExcelFiles(*.xlsx)')
files=paths[0]
path_strs=''
forfileinfiles:
path_strs=path_strs+file+';'
self.file_paths.setText(path_strs)
ifself.file_paths.text().strip()!='':
self.update_log('已經完成批文件路徑加載!')
else:
self.update_log('沒有選擇任何文件!')
defsave_dir_btn_click(self):
directory=QFileDialog.getExistingDirectory(self,'選擇文件夾',os.getcwd())
self.save_dir.setText(directory)
defupdate_log(self,text):
cursor=self.brower.textCursor()
cursor.movePosition(QTextCursor.End)
self.brower.append(text)
self.brower.setTextCursor(cursor)
self.brower.ensureCursorVisible()
defstart_btn_click(self):
self.start_btn.setEnabled(False)
self.work.start()
deffinished(self,finished):
iffinishedisTrue:
self.start_btn.setEnabled(True)
創建子線程,處理業務邏輯(清理Excel重復文件)
classDataWork(QThread):
trigger=pyqtSignal(str)
finished=pyqtSignal(bool)
def__init__(self,parent=None):
super(DataWork,self).__init__(parent)
self.parent=parent
self.working=True
def__del__(self):
self.working=False
self.wait()
defrun(self):
self.trigger.emit('啟動批量處理子線程...')
file_paths=self.parent.file_paths.text().strip()
colums_text=self.parent.colums_text.text().strip()
colums=[]
if','incolums_text:
colums=colums_text.split(',')
else:
colums.append(colums_text)
self.trigger.emit('獲取配置項完成!')
forfileinfile_paths.split(';'):
iffile.strip()!='':
web_sheet=pxl.load_workbook(file)
sheets=web_sheet.sheetnames
print(file)
new_file=file.split('.')[0]+'_已去重.'+file.split('.')[1]
print(new_file)
writer=pd.ExcelWriter(new_file)
forsheetinsheets:
sheet_name=sheet.title()
print(sheet_name)
self.trigger.emit('準備處理工作表名稱:'+str(sheet.title()))
data_frame=pd.read_excel(file,sheet_name=sheet_name)
print(data_frame)
repe=data_frame.duplicated(subset=colums)
repe=repe[repe]
print(data_frame.iloc[repe.index])
res=data_frame.drop_duplicates(subset=colums)
print(res)
self.trigger.emit(str(sheet.title())+':已清除')
res.to_excel(writer,sheet_name,index=False)
writer.save()
else:
self.trigger.emit('當前文件路徑為空,繼續...')
self.trigger.emit('數據處理完成...')
self.finished.emit(True)
使用主函數啟動整個應用
if__name__=='__main__':
app=QApplication(sys.argv)
w=CandyWindow.createWindow(EDataDel(),theme='blueGreen',
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電梯困人培訓方案
- 初一寒假安全教育主題班會
- 護士入崗前教育
- 讀單詞游戲設計
- 頤和園說課課件
- 體育運動中燙燒傷防護與處理
- 頸椎的護理課件
- 界面設計風格解析與應用
- 《智能網聯汽車技術》課件-自動駕駛等級劃分的認知
- 預防流感主題班會課件
- CJ/T 189-2007鋼絲網骨架塑料(聚乙烯)復合管材及管件
- 外派干部考核管理制度
- 公司網絡規劃設計方案
- 04 天津卷 (2024-2020) 近五年高考英語真題滿分作文匯編
- 公司監事轉讓協議書
- 屋面防水改造項目施工組織設計
- 2025年電子信息工程專業綜合能力考試卷及答案
- 2025年度6深圳中考數學考點、知識點的總結模版
- 監事簽訂勞動合同協議
- 教師畢業季活動方案
- 2025年北京市各區高三語文一模記敘文范文匯編
評論
0/150
提交評論