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

使用谷歌翻译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!

你可能感兴趣的:(python,excel,google+)