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

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("請選擇文件和保存路徑", "錯(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??梢允褂胮ip安裝:

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ò)狀況影響。 此外,對于大文件,處理時(shí)間可能會(huì)較長。 未來可以考慮添加進(jìn)度條等功能來提升用戶體驗(yàn)。

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

相關(guān)文章

  • Python使用json_repair輕松修復(fù)大模型返回的非法JSON

    Python使用json_repair輕松修復(fù)大模型返回的非法JSON

    在使用大語言模型時(shí),我們經(jīng)常要求模型返回結(jié)構(gòu)化的 JSON 數(shù)據(jù),以便程序進(jìn)一步解析和處理,然而,現(xiàn)實(shí)中模型輸出的 JSON 往往不夠干凈,下面我們就來看看如何使用json_repair修復(fù)大模型返回的非法JSON吧
    2025-11-11
  • Python 制作子彈圖

    Python 制作子彈圖

    這篇文章主要介紹了Python 制作子彈圖,眾所周知,Python 的應(yīng)用是非常廣泛的,今天我們就通過 matplotlib 庫學(xué)習(xí)下如何制作精美的子彈圖,需要的朋友可以參考一下
    2021-12-12
  • Python多線程同步Lock、RLock、Semaphore、Event實(shí)例

    Python多線程同步Lock、RLock、Semaphore、Event實(shí)例

    這篇文章主要介紹了Python多線程同步Lock、RLock、Semaphore、Event實(shí)例,Lock & RLock 用來確保多線程多共享資源的訪問,Semaphore用來確保一定資源多線程訪問時(shí)的上限,Event是最簡單的線程間通信的方式,需要的朋友可以參考下
    2014-11-11
  • python腳本調(diào)用iftop 統(tǒng)計(jì)業(yè)務(wù)應(yīng)用流量的思路詳解

    python腳本調(diào)用iftop 統(tǒng)計(jì)業(yè)務(wù)應(yīng)用流量的思路詳解

    這篇文章主要介紹了python腳本調(diào)用iftop 統(tǒng)計(jì)業(yè)務(wù)應(yīng)用流量的思路詳解,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 基于Python制作簡易視頻播放器

    基于Python制作簡易視頻播放器

    本文將用python-pyqt5-opencv做出來的簡易視頻播放器,主要實(shí)現(xiàn)本地視頻文件播放、本地?cái)z像頭播放和遠(yuǎn)程攝像頭播放三個(gè)功能,需要的可以參考下
    2024-11-11
  • python比較2個(gè)xml內(nèi)容的方法

    python比較2個(gè)xml內(nèi)容的方法

    這篇文章主要介紹了python比較2個(gè)xml內(nèi)容的方法,涉及Python操作XML文件的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • Tensorflow2.4從頭訓(xùn)練Word?Embedding實(shí)現(xiàn)文本分類

    Tensorflow2.4從頭訓(xùn)練Word?Embedding實(shí)現(xiàn)文本分類

    這篇文章主要為大家介紹了Tensorflow2.4從頭訓(xùn)練Word?Embedding實(shí)現(xiàn)文本分類,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 關(guān)于ZeroMQ 三種模式python3實(shí)現(xiàn)方式

    關(guān)于ZeroMQ 三種模式python3實(shí)現(xiàn)方式

    今天小編就為大家分享一篇關(guān)于ZeroMQ 三種模式python3實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Django基礎(chǔ)知識 URL路由系統(tǒng)詳解

    Django基礎(chǔ)知識 URL路由系統(tǒng)詳解

    這篇文章主要介紹了Django基礎(chǔ)知識 URL路由系統(tǒng)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python查找算法之分塊查找算法的實(shí)現(xiàn)

    Python查找算法之分塊查找算法的實(shí)現(xiàn)

    這篇文章主要介紹了Python查找算法之分塊查找算法的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評論

仲巴县| 高密市| 渝北区| 东海县| 光山县| 河间市| 通州市| 海城市| 库伦旗| 广西| 四平市| 崇义县| 苍梧县| 黄冈市| 桐乡市| 阿拉善左旗| 盘山县| 兴隆县| 靖远县| 探索| 广州市| 菏泽市| 寻甸| 西昌市| 卢湾区| 昌都县| 洞头县| 清苑县| 清新县| 德惠市| 高陵县| 通许县| 广河县| 京山县| 恭城| 延津县| 宕昌县| 莒南县| 教育| 洮南市| 远安县|