最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用wxPython和pandas模塊生成Excel文件的代碼實(shí)現(xiàn)

 更新時(shí)間:2024年05月11日 11:53:55   作者:winfredzhang  
在Python編程中,有時(shí)我們需要根據(jù)特定的數(shù)據(jù)生成Excel文件,本文將介紹如何使用wxPython和pandas模塊來(lái)實(shí)現(xiàn)這個(gè)目標(biāo),文中通過(guò)代碼示例給大家講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下

介紹:

在Python編程中,有時(shí)我們需要根據(jù)特定的數(shù)據(jù)生成Excel文件。本文將介紹如何使用wxPython和pandas模塊來(lái)實(shí)現(xiàn)這個(gè)目標(biāo)。我們將創(chuàng)建一個(gè)簡(jiǎn)單的GUI應(yīng)用程序,允許用戶選擇輸出文件夾和輸入的Excel文件,并根據(jù)Excel文件中每個(gè)單元格的字段名組合生成多個(gè)Excel文件。
C:\pythoncode\new\genxlsbyxls.py

1. 準(zhǔn)備工作

在開(kāi)始之前,確保您已經(jīng)安裝了wxPython和pandas模塊。如果沒(méi)有安裝,可以使用以下命令進(jìn)行安裝:

pip install wxPythonpip install pandas

2. 創(chuàng)建GUI窗口

首先,我們需要?jiǎng)?chuàng)建一個(gè)GUI窗口,以便用戶可以選擇輸出文件夾和輸入的Excel文件。我們將使用wxPython模塊來(lái)創(chuàng)建窗口和按鈕,并將事件與相應(yīng)的回調(diào)函數(shù)關(guān)聯(lián)起來(lái)。

import wx
import os
import pandas as pd

class MyFrame(wx.Frame):
    def __init__(self, parent, title):
        super(MyFrame, self).__init__(parent, title=title, size=(400, 200))
        
        panel = wx.Panel(self)
        
        self.output_dir_btn = wx.Button(panel, label="選擇輸出文件夾")
        self.Bind(wx.EVT_BUTTON, self.on_select_output_dir, self.output_dir_btn)
        
        self.input_file_btn = wx.Button(panel, label="選擇Excel文件")
        self.Bind(wx.EVT_BUTTON, self.on_select_input_file, self.input_file_btn)
        
        self.start_btn = wx.Button(panel, label="開(kāi)始生成")
        self.Bind(wx.EVT_BUTTON, self.on_start_generation, self.start_btn)
        
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.output_dir_btn, 0, wx.ALL|wx.EXPAND, 5)
        sizer.Add(self.input_file_btn, 0, wx.ALL|wx.EXPAND, 5)
        sizer.Add(self.start_btn, 0, wx.ALL|wx.EXPAND, 5)
        panel.SetSizer(sizer)
        
    def on_select_output_dir(self, event):
        dlg = wx.DirDialog(self, "選擇輸出文件夾", style=wx.DD_DEFAULT_STYLE)
        if dlg.ShowModal() == wx.ID_OK:
            self.output_dir = dlg.GetPath()
            print("輸出文件夾:", self.output_dir)
        dlg.Destroy()
    
    def on_select_input_file(self, event):
        dlg = wx.FileDialog(self, "選擇Excel文件", wildcard="Excel files (*.xlsx)|*.xlsx",
                            style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
        if dlg.ShowModal() == wx.ID_OK:
            self.input_file = dlg.GetPath()
            print("輸入文件:", self.input_file)
        dlg.Destroy()
    
    def on_start_generation(self, event):
        if not hasattr(self, 'output_dir') or not hasattr(self, 'input_file'):
            wx.MessageBox("請(qǐng)先選擇輸出文件夾和Excel文件", "錯(cuò)誤", wx.OK | wx.ICON_ERROR)
            return
        
        df = pd.read_excel(self.input_file)
        
        for i, col in enumerate(df.iloc[:, 0]):
            column_names = col.split(',')
            file_name = f"{i+1}.xlsx"
            file_path = os.path.join(self.output_dir, file_name)
            
            df_new = pd.DataFrame(columns=column_names)
            df_new.to_excel(file_path, index=False)
        
        wx.MessageBox("生成完成", "提示", wx.OK | wx.ICON_INFORMATION)
        self.Close()

app = wx.App()
frame = MyFrame(None, "Excel文件生成器")
frame.Show()
app.MainLoop()```

在上述代碼中,我們創(chuàng)建了一個(gè)`MyFrame`類(lèi),繼承自wxPython的`Frame`類(lèi)。該類(lèi)表示我們的應(yīng)用程序窗口,并包含了選擇輸出文件夾和選擇Excel文件的按鈕。

**3. 實(shí)現(xiàn)回調(diào)函數(shù)**

接下來(lái),我們需要實(shí)現(xiàn)與按鈕關(guān)聯(lián)的回調(diào)函數(shù)。這些函數(shù)將在用戶點(diǎn)擊相應(yīng)的按鈕時(shí)被調(diào)用。

```python
    def on_select_output_dir(self, event):
        dlg = wx.DirDialog(self, "選擇輸出文件夾", style=wx.DD_DEFAULT_STYLE)
        if dlg.ShowModal() == wx.ID_OK:
            self.output_dir = dlg.GetPath()
            print("輸出文件夾:", self.output_dir)
        dlg.Destroy()
    
    def on_select_input_file(self, event):
        dlg = wx.FileDialog(self, "選擇Excel文件", wildcard="Excel files (*.xlsx)|*.xlsx",
                            style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
        if dlg.ShowModal() == wx.ID_OK:
            self.input_file = dlg.GetPath()
            print("輸入文件:", self.input_file)
        dlg.Destroy()
    
    def on_start_generation(self, event):
        if not hasattr(self, 'output_dir') or not hasattr(self, 'input_file'):
            wx.MessageBox("請(qǐng)先選擇輸出文件夾和Excel文件", "錯(cuò)誤", wx.OK | wx.ICON_ERROR)
            return
        
        df = pd.read_excel(self.input_file)
        
        for i, col in enumerate(df.iloc[:, 0]):
            column_names = col.split(',')
            file_name = f"{i+1}.xlsx"
            file_path = os.path.join(self.output_dir, file_name)
            
            df_new = pd.DataFrame(columns=column_names)
            df_new.to_excel(file_path, index=False)
        
        wx.MessageBox("生成完成", "提示", wx.OK | wx.ICON_INFORMATION)
        self.Close()

在上述代碼中,on_select_output_dir函數(shù)用于選擇輸出文件夾,并將選擇的路徑存儲(chǔ)在self.output_dir變量中。on_select_input_file函數(shù)類(lèi)似地用于選擇輸入的Excel文件,并將選擇的文件路徑存儲(chǔ)在self.input_file變量中。

on_start_generation函數(shù)是最重要的回調(diào)函數(shù)。它首先讀取選擇的Excel文件,并逐個(gè)單元格解析字段名組合。然后,根據(jù)字段名組合創(chuàng)建新的DataFrame,并將其保存為一個(gè)新的Excel文件,文件名為序號(hào)加上.xlsx后綴。生成的Excel文件將保存在選擇的輸出文件夾中。

4. 運(yùn)行應(yīng)用程序

最后,我們需要?jiǎng)?chuàng)建一個(gè)wx.App對(duì)象并運(yùn)行應(yīng)用程序的主循環(huán)。

app = wx.App()
frame = MyFrame(None, "Excel文件生成器")
frame.Show()
app.MainLoop()

這段代碼創(chuàng)建了一個(gè)wx.App對(duì)象和一個(gè)MyFrame對(duì)象,并將應(yīng)用程序的主循環(huán)交給app.MainLoop()處理。

5. 效果演示

在這里插入圖片描述

在這里插入圖片描述

現(xiàn)在,我們已經(jīng)完成了整個(gè)程序的編寫(xiě)。運(yùn)行程序后,將會(huì)出現(xiàn)一個(gè)GUI窗口,您可以通過(guò)點(diǎn)擊按鈕選擇輸出文件夾和輸入的Excel文件。當(dāng)您點(diǎn)擊"開(kāi)始生成"按鈕后,程序?qū)⒏鶕?jù)Excel文件中的字段名組合生成多個(gè)Excel文件,并保存在指定的輸出文件夾中。

這個(gè)程序提供了一個(gè)簡(jiǎn)單而實(shí)用的方法來(lái)根據(jù)Excel文件中的字段名組合生成多個(gè)Excel文件。您可以根據(jù)自己的需求進(jìn)行修改和擴(kuò)展,以滿足更復(fù)雜的場(chǎng)景。

總結(jié):

本文介紹了如何使用wxPython和pandas模塊創(chuàng)建一個(gè)簡(jiǎn)單的GUI應(yīng)用程序,用于根據(jù)Excel文件中的字段名組合生成多個(gè)Excel文件。通過(guò)選擇輸出文件夾和輸入的Excel文件,程序能夠自動(dòng)解析字段名組合,并生成對(duì)應(yīng)的Excel文件。這種方法可以方便地處理大量數(shù)據(jù),并將其保存為易于管理和使用的Excel文件。

以上就是使用wxPython和pandas模塊生成Excel文件的代碼實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于wxPython pandas生成Excel的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

昌都县| 鹤壁市| 呼和浩特市| 祥云县| 井冈山市| 中方县| 岑巩县| 周口市| 泰来县| 巢湖市| 绍兴县| 石台县| 琼海市| 错那县| 新余市| 元朗区| 泸州市| 棋牌| 曲靖市| 通化县| 迭部县| 娄底市| 任丘市| 芦溪县| 嘉善县| 平顶山市| 南澳县| 耒阳市| 禹州市| 营山县| 射洪县| 图木舒克市| 峨眉山市| 三穗县| 梁平县| 五指山市| 孟村| 景德镇市| 全南县| 辽源市| 融水|