欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)Excel表格轉(zhuǎn)置與翻譯工具

 更新時(shí)間:2024年10月28日 09:40:27   作者:winfredzhang  
本文主要介紹如何使用Python編寫一個(gè)GUI程序,能夠讀取Excel文件,將第一個(gè)列的數(shù)據(jù)轉(zhuǎn)置,并將英文內(nèi)容翻譯成中文,有需要的小伙伴可以參考一下

介紹一個(gè)使用Python編寫的GUI程序,該程序能夠讀取Excel文件,將第一個(gè)列的數(shù)據(jù)轉(zhuǎn)置,并將英文內(nèi)容翻譯成中文,最后保存到新的Excel文件中。程序使用wxPython構(gòu)建GUI界面,pandas處理Excel數(shù)據(jù),googletrans進(jìn)行翻譯。

C:\pythoncode\new\rotateexcel.py

一、 功能概述

該程序主要實(shí)現(xiàn)以下功能:

  • 選擇Excel文件: 用戶可以通過GUI界面選擇需要處理的Excel文件(.xlsx格式)。
  • 選擇保存路徑: 用戶可以選擇保存處理后文件的路徑。
  • 轉(zhuǎn)置與翻譯: 程序讀取Excel文件,提取第一個(gè)列(從第二行開始)的數(shù)據(jù),進(jìn)行轉(zhuǎn)置,并將英文內(nèi)容翻譯成中文。
  • 保存結(jié)果: 將翻譯后的數(shù)據(jù)保存到新的Excel文件中,文件名與原文件名相同,并在文件名后添加_translated后綴。
  • 錯(cuò)誤處理: 程序包含錯(cuò)誤處理機(jī)制,能夠捕獲并顯示文件讀取錯(cuò)誤、翻譯錯(cuò)誤等異常信息。
  • 進(jìn)度提示: 程序通過消息框提示用戶操作進(jìn)度(文件選擇、保存路徑選擇、轉(zhuǎn)換完成、錯(cuò)誤提示等)。

全部代碼

import wx
import pandas as pd
import os
from googletrans import Translator

class ExcelTransposer(wx.Frame):
    def __init__(self, *args, **kwargs):
        super(ExcelTransposer, self).__init__(*args, **kwargs)
        
        # Set up the frame
        self.InitUI()
        self.translator = Translator()  # 初始化翻譯器
        
    def InitUI(self):
        panel = wx.Panel(self)
        vbox = wx.BoxSizer(wx.VERTICAL)
        
        # File selection
        file_box = wx.BoxSizer(wx.HORIZONTAL)
        self.file_path = wx.TextCtrl(panel)
        file_btn = wx.Button(panel, label="選擇xlsx文件")
        file_btn.Bind(wx.EVT_BUTTON, self.OnSelectFile)
        file_box.Add(self.file_path, proportion=1, flag=wx.EXPAND|wx.ALL, border=5)
        file_box.Add(file_btn, flag=wx.ALL, border=5)
        
        # Output folder selection
        save_box = wx.BoxSizer(wx.HORIZONTAL)
        self.save_path = wx.TextCtrl(panel)
        save_btn = wx.Button(panel, label="選擇保存路徑")
        save_btn.Bind(wx.EVT_BUTTON, self.OnSelectSavePath)
        save_box.Add(self.save_path, proportion=1, flag=wx.EXPAND|wx.ALL, border=5)
        save_box.Add(save_btn, flag=wx.ALL, border=5)
        
        # Convert button
        convert_btn = wx.Button(panel, label="轉(zhuǎn)換并翻譯")
        convert_btn.Bind(wx.EVT_BUTTON, self.OnConvert)
        
        # Add to vbox
        vbox.Add(file_box, flag=wx.EXPAND|wx.ALL, border=5)
        vbox.Add(save_box, flag=wx.EXPAND|wx.ALL, border=5)
        vbox.Add(convert_btn, flag=wx.ALIGN_CENTER|wx.ALL, border=10)
        
        panel.SetSizer(vbox)
        
        self.SetTitle("Excel Sheet 轉(zhuǎn)置和翻譯器")
        self.SetSize((400, 200))
        self.Centre()
        
    def OnSelectFile(self, event):
        with wx.FileDialog(self, "選擇 Excel 文件", wildcard="Excel files (*.xlsx)|*.xlsx",
                           style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST) as fileDialog:
            if fileDialog.ShowModal() == wx.ID_CANCEL:
                return
            path = fileDialog.GetPath()
            self.file_path.SetValue(path)
    
    def OnSelectSavePath(self, event):
        with wx.DirDialog(self, "選擇保存文件夾",
                          style=wx.DD_DEFAULT_STYLE) as dirDialog:
            if dirDialog.ShowModal() == wx.ID_CANCEL:
                return
            path = dirDialog.GetPath()
            self.save_path.SetValue(path)
    
    def OnConvert(self, event):
        excel_path = self.file_path.GetValue()
        save_folder = self.save_path.GetValue()
        
        if not excel_path or not save_folder:
            wx.MessageBox("請(qǐng)選擇文件和保存路徑", "錯(cuò)誤", wx.ICON_ERROR)
            return
        
        try:
            # Load the Excel file
            xlsx = pd.ExcelFile(excel_path)
            
            for sheet_name in xlsx.sheet_names:
                # Read each sheet
                df = xlsx.parse(sheet_name)
                
                if df.shape[0] < 2:
                    wx.MessageBox(f"Sheet {sheet_name} 數(shù)據(jù)不足", "警告", wx.ICON_WARNING)
                    continue
                
                # Transpose first column starting from second row (ignoring first row)
                transposed_data = df.iloc[1:, 0].values.T
                
                # Translate the English text to Chinese
                translated_data = [self.translator.translate(text, src='en', dest='zh-cn').text for text in transposed_data]
                
                # Convert translated data to DataFrame
                translated_df = pd.DataFrame([translated_data])
                
                # Save to a new Excel file
                output_file = os.path.join(save_folder, f"{sheet_name}_translated.xlsx")
                with pd.ExcelWriter(output_file) as writer:
                    translated_df.to_excel(writer, index=False, header=False, sheet_name=sheet_name)
                
            wx.MessageBox("轉(zhuǎn)換并翻譯完成", "成功", wx.ICON_INFORMATION)
        
        except Exception as e:
            wx.MessageBox(f"出現(xiàn)錯(cuò)誤: {e}", "錯(cuò)誤", wx.ICON_ERROR)


if __name__ == '__main__':
    app = wx.App()
    frame = ExcelTransposer(None)
    frame.Show()
    app.MainLoop()

二、 代碼分析

程序主要由ExcelTransposer類構(gòu)成,該類繼承自wx.Frame,實(shí)現(xiàn)了GUI界面的創(chuàng)建和事件處理。

import wx
import pandas as pd
import os
from googletrans import Translator

class ExcelTransposer(wx.Frame):
    # ... (代碼略) ...

__init__方法: 初始化GUI界面和翻譯器實(shí)例。

InitUI方法: 創(chuàng)建GUI界面元素,包括文件選擇按鈕、保存路徑選擇按鈕和轉(zhuǎn)換按鈕。使用了wx.BoxSizer進(jìn)行布局管理,使界面更整潔美觀。

OnSelectFile方法: 使用wx.FileDialog允許用戶選擇Excel文件,并將文件路徑顯示在文本框中。

OnSelectSavePath方法: 使用wx.DirDialog允許用戶選擇保存文件的路徑,并將路徑顯示在文本框中。

OnConvert方法: 這是程序的核心部分,負(fù)責(zé)讀取Excel文件、進(jìn)行數(shù)據(jù)處理和翻譯、保存結(jié)果文件。

  • 讀取Excel文件: 使用pandas.ExcelFile讀取Excel文件。
  • 循環(huán)處理每個(gè)sheet: 程序遍歷Excel文件中的每個(gè)sheet。
  • 數(shù)據(jù)轉(zhuǎn)置: 使用df.iloc[1:, 0].values.T提取第一個(gè)列(從第二行開始)的數(shù)據(jù)并進(jìn)行轉(zhuǎn)置。
  • 翻譯: 使用googletrans.Translator將英文文本翻譯成中文。
  • 保存結(jié)果: 使用pandas.ExcelWriter將翻譯后的數(shù)據(jù)保存到新的Excel文件中。
  • 錯(cuò)誤處理: 使用try...except塊捕獲可能出現(xiàn)的異常,并顯示錯(cuò)誤信息。

三、 運(yùn)行程序

確保已安裝必要的庫:wxPython, pandas, googletrans。可以使用pip安裝:

pip install wxPython pandas googletrans==4.0.0-rc1

保存代碼為.py文件(例如excel_transposer.py)。

運(yùn)行程序:python excel_transposer.py

程序運(yùn)行后會(huì)顯示一個(gè)GUI窗口,用戶可以按照提示選擇Excel文件、保存路徑,并點(diǎn)擊“轉(zhuǎn)換并翻譯”按鈕進(jìn)行處理。

運(yùn)行結(jié)果

四、 總結(jié)

這個(gè)程序提供了一個(gè)方便易用的工具,可以批量處理Excel文件,將數(shù)據(jù)轉(zhuǎn)置并進(jìn)行翻譯。程序結(jié)構(gòu)清晰,代碼易于理解和維護(hù)。通過使用wxPython,程序擁有友好的用戶界面,提高了用戶體驗(yàn)。 不過,需要注意的是,googletrans的翻譯質(zhì)量和速度可能受網(wǎng)絡(luò)狀況影響。 此外,對(duì)于大文件,處理時(shí)間可能會(huì)較長。 未來可以考慮添加進(jìn)度條等功能來提升用戶體驗(yàn)。

到此這篇關(guān)于Python實(shí)現(xiàn)Excel表格轉(zhuǎn)置與翻譯工具的文章就介紹到這了,更多相關(guān)Python Excel表格轉(zhuǎn)置與翻譯內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python多進(jìn)程使用及進(jìn)程池詳解

    Python多進(jìn)程使用及進(jìn)程池詳解

    這篇文章主要為大家介紹了Python多進(jìn)程使用及進(jìn)程池詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • python datetime處理時(shí)間小結(jié)

    python datetime處理時(shí)間小結(jié)

    這篇文章主要介紹了python datetime處理時(shí)間小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • pyinstaller打包opencv和numpy程序運(yùn)行錯(cuò)誤解決

    pyinstaller打包opencv和numpy程序運(yùn)行錯(cuò)誤解決

    這篇文章主要介紹了pyinstaller打包opencv和numpy程序運(yùn)行錯(cuò)誤解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python3隨機(jī)漫步生成數(shù)據(jù)并繪制

    Python3隨機(jī)漫步生成數(shù)據(jù)并繪制

    這篇文章主要為大家詳細(xì)介紹了Python3隨機(jī)漫步生成數(shù)據(jù)并繪制的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Selenium向iframe富文本框輸入內(nèi)容過程圖解

    Selenium向iframe富文本框輸入內(nèi)容過程圖解

    這篇文章主要介紹了Selenium向iframe富文本框輸入內(nèi)容過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • KMP算法精解及其Python版的代碼示例

    KMP算法精解及其Python版的代碼示例

    KMP算法基本上被人們用作字符串的匹配操作,這里我們就來介紹KMP算法精解及其Python版的代碼示例,需要的朋友可以參考下
    2016-06-06
  • python數(shù)字圖像處理數(shù)據(jù)類型及顏色空間轉(zhuǎn)換

    python數(shù)字圖像處理數(shù)據(jù)類型及顏色空間轉(zhuǎn)換

    這篇文章主要為大家介紹了python數(shù)字圖像處理數(shù)據(jù)類型及顏色空間轉(zhuǎn)換示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • python中WSGI是什么,Python應(yīng)用WSGI詳解

    python中WSGI是什么,Python應(yīng)用WSGI詳解

    這篇文章主要介紹一下python中的WSGI, 小編在網(wǎng)上找了幾篇非常好的關(guān)于WSGI介紹,整理一下分享給大家。
    2017-11-11
  • 詳解python中eval函數(shù)的作用

    詳解python中eval函數(shù)的作用

    在本篇文章里小編給大家整理的是關(guān)于python中eval函數(shù)作用以及實(shí)例代碼,需要的朋友們參考下吧。
    2019-10-10
  • Python 將Matrix、Dict保存到文件的方法

    Python 將Matrix、Dict保存到文件的方法

    今天小編就為大家分享一篇Python 將Matrix、Dict保存到文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10

最新評(píng)論