利用Python脚本来使用Google自动翻译Excel表格文件

发布时间:2025-01-29 15:01

使用谷歌翻译Excel表格的Python自动脚本

最近闲来无事写了份保姆级别的翻译Excel文件的python脚本。
最后在参考各位大佬的教程后写出的脚本,需要的可以自取。
github源码

食用方法

需要安装以下包:openpyxl、pygoogletranslation和tqdm。
修改pygoogletranslation源码中的utils.py的第8行为
(源码在python路径下的\\Lib\\site-packages\\pygoogletranslation文件夹中)

from pygoogletranslation.models import TranslatedPart

然后在命令行输入以下命令后按提示操作即可

python Excel_Google.py -f  -s <表名>

也可以输入以下命令查看帮助

python Excel_Google.py -h

需要注意的是在翻译的时候需要将原Excel文件关闭,并且该脚本为覆盖翻译,请注意文件的备份!!!

import getopt
import sys
from tqdm import tqdm
from openpyxl import load_workbook
from pygoogletranslation import Translator

def Google_Fanyi(file_home, sheet):
    try:
        wb = load_workbook(filename=file_home)  # 打开excel文件
    except:
        print(\"错误:打开\'\" + file_home + \"\'的文件失败,请检查文件路径是否有误!!!\")
        sys.exit()
    try:
        ws = wb[sheet]  # 根据Sheet1这个sheet名字来获取该sheet
    except:
        print(\"错误:打开\'\" + sheet + \"\'表格失败,请检查表名是否有误!!!\")
        sys.exit()
    print(\"准备开始翻译的Excel文件路径为:\" + file_home +\",表名为:\" + sheet)
    # 更换谷歌翻译地址
    translator = Translator(service_url=\'translate.google.cn\')

    nrows = ws.max_row
    ncols = ws.max_column
    print(\"行数:%d\\t列数:%d\"%(nrows,ncols))

    input(\"请确定是否关闭Excel文件(输入任意键开始翻译)\")
    pbar = tqdm(total=nrows * ncols)	# 获取进度条总数

    for row in range(1, nrows + 1):
        for col in range(1, ncols + 1):
            pbar.update(1)	# 更新进度条
            if ws.cell(row, col).value != None:
                ws.cell(row, col).value = translator.translate(ws.cell(row, col).value, dest=\'zh-CN\').text

    try:
        wb.save(file_home)  # 保存修改后的excel
    except:
        print(\"错误:未关闭Excel表格文件\")
        sys.exit()



if __name__ == \'__main__\':
    opts, args = getopt.getopt(sys.argv[1:], \"hf:s:\", [\"file=\", \"sheet=\"])
    if len(opts) != 0:
        for opt, arg in opts:
            if opt == \'-h\':
                print(\"使用格式为:\\npython Excel_Google.py -f  -s <表名>\\n\"
                    + \"PS:如果第一次使用请安装以下包:openpyxl、pygoogletranslation和tqdm。\\n\"
                    + \"   并修改pygoogletranslation源码中的utils.py的第8行为:\\n\"
                    + \"       from pygoogletranslation.models import TranslatedPart\\n\"
                    + \"#开始运行代码时不可打开Excel文件#\")
                sys.exit()
            elif opt in (\"-f\", \"--file\"):
                file_home = arg
            elif opt in (\"-s\", \"--sheet\"):
                sheet = arg
            else:
                print(\"错误:参数有误,python Excel_Google.py -h获取详情\")
                sys.exit()
        try:
            Google_Fanyi(file_home, sheet)
        except:
            print(\"警告:参数不完整或发生错误,使用python Excel_Google.py -h获取详情\")
            sys.exit()
        print(\"Enjoy it!\")
    else:
        print(\"错误:参数为空,使用python Excel_Google.py -h获取详情\\n\"
            + \"PS:如果第一次使用请安装以下包:openpyxl、pygoogletranslation和tqdm。\\n\"
            + \"   并修改pygoogletranslation源码中的utils.py的第8行为:\\n\"
            + \"       from pygoogletranslation.models import TranslatedPart\\n\"
            + \"#开始运行代码时不可打开Excel文件#\")
        sys.exit()

最后Enjoy it!

你可能感兴趣的

相关推荐

C语言中字符串和内存库函数的模拟实现

【无标题】黑炫酷的监控界面,实际上是用了什么开源工具?

IAST 初探:博采众长、精准定位、DevOps友好

【RocketMQ】消息的拉取

性能调优及MyBatis开启batch模式

主管发话:一周搞不定用友U8 ERP跨业务数据分析,明天就可以“毕业”了

0基础就可以上手的Spark脚本开发-for Java

聚类算法---无监督学习

golang时间及时间戳的获取转换

从零到一学习计算机视觉:朋友圈爆款背后的计算机视觉技术与应用 | 公开课笔记...

python使用pip成功导入库后还是报错的解决方法(针对vscode)

kubeadm部署k8s集群1.20版本

MySQL实现行列转换

出现ModuleNotFoundError:cannot import name ‘is_scalar_nan‘ from ‘sklearn.utils‘的问题

openresty完全开发指南_为什么很多 SpringBoot 开发者放弃了 Tomcat,选择了 Undertow?...

如何建立一个完美的 Python 项目?

贾俊平统计学第七版课后习题答案

什么是元学习 (Meta Learning)

效率提升神器之Guava-Joiner

Golang 给结构体绑定方法

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号