发布时间:2025-01-29 15:01
最近闲来无事写了份保姆级别的翻译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!