真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

PyQt5 小工具:Excel數(shù)據(jù)分組匯總器...

在寫數(shù)據(jù)匯總分組工具之前梳理一下需求,要求一:能夠將excel的數(shù)據(jù)展示到列表中。要求二:能夠支持按列匯總數(shù)據(jù),并且多列分組匯總。要求三:能夠預覽分組匯總以后的數(shù)據(jù),最后將分好組匯總的數(shù)據(jù)保存到新的excel數(shù)據(jù)文件中。

成都創(chuàng)新互聯(lián)公司是專業(yè)的酉陽土家族苗族網站建設公司,酉陽土家族苗族接單;提供成都網站制作、成都網站設計,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行酉陽土家族苗族網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!

【閱讀全文】

完整源代碼的獲取方式放在文末了,有需要的可以自行下載使用。

主要使用到第三方python模塊有下面這些,和前面幾個 PyQt5 應用不同的是這次增加了一個樣式模塊 qdarkstyle ,通過最后將這個模塊直接加入到 QApplication 中就可以顯示成黑色酷酷的應用了。這個樣式我個人是比較喜歡的...

'''應用操作庫'''
import sys
import os

'''應用樣式庫'''
from qdarkstyle import load_stylesheet_pyqt5

'''UI界面庫'''
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *

'''數(shù)據(jù)提取庫'''
import pandas as pd

編寫 UI 界面組件布局,UI 布局函數(shù) init_ui()。init_ui() 的函數(shù)整體內容都貼在下面這里,大佬們可以根據(jù)自己的需要隨意發(fā)揮。

  def init_ui(self):
        # 標題、圖標設置
        self.setWindowTitle('Excel數(shù)據(jù)匯總工具   公眾號:[Python 集中營]')
        self.setWindowIcon(QIcon(':/data_sum.ico'))

        # 初始化水平布局
        hbox = QHBoxLayout()

        # 初始化柵格布局
        grid = QGridLayout()

        self.data_source_text = QLineEdit()
        self.data_source_text.setReadOnly(True)

        self.data_source_btn = QPushButton()
        self.data_source_btn.setText('數(shù)據(jù)')
        self.data_source_btn.clicked.connect(self.data_source_btn_click)

        self.data_group_column = QLabel()
        self.data_group_column.setText('設置分組列')

        self.data_group_column_text = QLineEdit()
        self.data_group_column_text.setPlaceholderText('列名1,列名2...')

        self.save_dir_text = QLineEdit()
        self.save_dir_text.setReadOnly(True)

        self.save_dir_btn = QPushButton()
        self.save_dir_btn.setText('路徑')
        self.save_dir_btn.clicked.connect(self.save_dir_btn_click)

        self.view_data_btn = QPushButton()
        self.view_data_btn.setText('預覽數(shù)據(jù)')
        self.view_data_btn.clicked.connect(self.view_data_btn_click)

        self.save_data_btn = QPushButton()
        self.save_data_btn.setText('保存')
        self.save_data_btn.clicked.connect(self.save_data_btn_click)

        grid.addWidget(self.data_source_text, 0, 0, 1, 2)
        grid.addWidget(self.data_source_btn, 0, 2, 1, 1)
        grid.addWidget(self.data_group_column, 1, 0, 1, 1)
        grid.addWidget(self.data_group_column_text, 1, 1, 1, 2)

        grid.addWidget(self.save_dir_text, 2, 0, 1, 2)
        grid.addWidget(self.save_dir_btn, 2, 2, 1, 1)
        grid.addWidget(self.view_data_btn, 3, 0, 1, 2)
        grid.addWidget(self.save_data_btn, 3, 2, 1, 1)

        self.table_view = QTableView()
        self.table_view.setFixedWidth(500)
        self.table_view.setFixedHeight(100)

        hbox.addWidget(self.table_view)
        hbox.addLayout(grid)

        self.setLayout(hbox)

槽函數(shù)總共使用了四個,分別是下面這些。

save_data_btn_click:將分組匯總后的 DataFrame 數(shù)據(jù)直接保存。

data_source_btn_click:用來加載需要分組匯總的 excel 文件的,并將加載出來的 DataFrame 數(shù)據(jù)直接顯示到 QTableView 的組件上面,這樣可以實時的看見加載進來的原始數(shù)據(jù)。

save_dir_btn_click:點擊選擇存儲路徑時觸發(fā)的槽函數(shù),用來調起 QFileDialog 來選擇文件路徑。

view_data_btn_click:調起預覽分組匯總后的數(shù)據(jù),將分組后的數(shù)據(jù)顯示到窗口上。

槽函數(shù) data_source_btn_click,加載 excel 源數(shù)據(jù)。

    def data_source_btn_click(self):
        xlsx_file = QFileDialog.getOpenFileName(self, '選擇文件', self.cwd, 'Excel File(*.xlsx)')
        self.data_source_text.setText(xlsx_file[0])
        self.data_frame = pd.read_excel(self.data_source_text.text().strip())
        print(self.data_frame)
        model = TableModelView(self.data_frame)
        self.table_view.setModel(model)

槽函數(shù) save_data_btn_click,保存最終的 excel 數(shù)據(jù)。

    def save_data_btn_click(self):
        dir = self.save_dir_text.text().strip()
        self.data_frame_group.to_excel(dir + 'group_data.xlsx',sheet_name='數(shù)據(jù)信息匯總')

槽函數(shù) view_data_btn_click,預覽分組匯總的數(shù)據(jù)。

    def view_data_btn_click(self):
        columns = self.data_group_column_text.text().strip()
        column_list = []
        if columns != '':
            column_list = columns.split(',')
        self.data_frame_group = self.data_frame.groupby(column_list, as_index=False).sum()
        print(self.data_frame_group)
        model = TableModelView(self.data_frame_group)
        self.table_view.setModel(model)

槽函數(shù) save_dir_btn_click,存儲文件選擇。

    def save_dir_btn_click(self):
        save_path = QFileDialog.getExistingDirectory(self, '選擇文件夾', self.cwd)
        self.save_dir_text.setText(save_path + '/')

最后,在主要代碼塊中展示列表數(shù)據(jù)時時使用了一個 QTableView 組件自定義的模型 TableModelView,由于篇幅問題這里就不分享了,大家可以去公眾號下載源碼。

【福利】公眾號內回復 "Excel數(shù)據(jù)分組匯總器",獲取完整源代碼。

【往期精選】

● 異常:存儲MYSQL轉義數(shù)據(jù)保證數(shù)據(jù)存儲的準確性...

● 做一個小鬧鐘,按規(guī)劃做事...

● 使用pyqt5的日期控件做一個小日歷方便查看...

● 將幾萬張圖片合成一張圖片,制作一個超贊的馬賽克圖!

● 小工具批量將mp3音頻格式轉換為wav格式

● 不用H5,直接使用pywebio模塊實現(xiàn)網頁

● python回調函數(shù)能做什么?

● 解決pyinstaller打包過程中外部資源無法加載的問題 ...

● 如何在控制臺實現(xiàn)一個數(shù)據(jù)管理系統(tǒng)(包括MYSQL數(shù)據(jù)庫的增刪改查)

● pyqt5做了一個二維碼生成器,已打包成exe可執(zhí)行程序...

● 自制文檔格式轉換器,支持 .txt/.xlsx/.csv格式轉換...

● PyPDF2如何實現(xiàn)按照PDF頁碼提取后并另存為PDF格式文件?

● PyQt5 GUI:百度圖片下載器(文末附源碼)

● 浪漫的turtle,送給程序員自己的圣誕樹!


當前標題:PyQt5 小工具:Excel數(shù)據(jù)分組匯總器...
瀏覽地址:http://weahome.cn/article/dsojdjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部