有朋友问有没有Excel公式可以自动翻译公式中的文本。

找了几个帖子,是用VBA请求翻译网站的API,返回结果。尝试做了一下,发现行不通。这是很久以前的帖子,其中使用的API都废弃了,现在升级为SDK了。要想实现同样的功能得写一些逻辑。平时不怎么用Excel,不确定VBA是否能使用现在的SDK,所以选择了自己熟悉的Python。

下面是Python的安装包下载链接:

Python2 Windows 64位下载

Python2 Windows 32位下载

Python有两个不同的版本,Python2和Python3,这里安装的是Python2。当下人工智能火热,计算机等级考试也添加了这门语言,有省份的Python小学教材都出了。相信大家应该对这个语言也不陌生。

安装教程:

廖雪峰 Python安装

安装选项中的pip和Add python.exe to Path是要选上的。其他的请参考教程。

安装完成后,需要安装几个依赖包。步骤:

Windows + R 打开运行窗口。

输入cmd,回车 打开命令行。

输入pip install xlrd,回车 等待结束。

输入pip install XlsxWriter,回车 等待结束。

安装结果是英文显示,如果看到Success之类的单词代表安装成功。看到红色显示的单词或者failed代表失败。

找了几个知名翻译网站,大部分都收费,但有些限定单词数量内免费。最终,我选的是百度翻译。每月免费200万字符,一般够用。只是需要注册一个百度翻译开放平台账号。注册过程略过。

下面是功能代码:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

from __future__ import print_function

import math

import re

import sys

import os

import httplib

import md5

import urllib

import random

import json

import xlrd

import xlsxwriter

class Boot(object):

# ============ 只改这里 ====================

APPID = '你的APP ID'

SECRET_KEY = '你的密钥'

FILE_NAME = u'测试.xlsx' # Excel文件名

NEW_FILE_NAME = u'测试-结果.xlsx' # 输出文件

SHEET_NAME = u'测试' # 页名

START_CELL = 'C5' # 开始格子

END_CELL = 'D19' # 结束格子

SRC_LAN = 'jp' # 源语言

DST_LAN = 'zh' # 目标语言

# ============ ~只改这里 ====================

@classmethod

def row_name_2_real_name(cls, row_name):

row_name = row_name.lower()

result = 0

for ch in row_name:

result = result * 26 + (ord(ch) - 96)

return int(result + 0.5)

@classmethod

def view_nam_2_real_name(cls, view_name):

mat = re.match(r'([a-zA-Z]+)(\d+)', view_name)

if not mat:

cls.printu(u'格子号不对!')

sys.exit(1)

row = int(mat.group(2))

column = cls.row_name_2_real_name(mat.group(1))

return (row - 1, column - 1)

@classmethod

def get_cell_value(cls, work_sheet, row, column, tp):

return tp(work_sheet.cell(row, column).value)

@classmethod

def printu(cls, u_text):

if sys.platform == 'win32':

print(u_text.encode('gbk'))

else:

print(u_text.encode('utf-8'))

@classmethod

def translate(cls, src_text):

result = u'【翻译失败】'

salt = random.randint(32768, 65536)

sign = '%s%s%s%s' % (

cls.APPID,

src_text,

salt,

cls.SECRET_KEY

)

m1 = md5.new()

m1.update(sign)

sign = m1.hexdigest()

translate_url = '/api/trans/vip/translate?appid=%s&q=%s&from=%s&to=%s&salt=%s&sign=%s' % (

cls.APPID,

src_text,

cls.SRC_LAN,

cls.DST_LAN,

salt,

sign

)

httpClient = None

try:

httpClient = httplib.HTTPConnection('api.fanyi.baidu.com')

httpClient.request('GET', translate_url)

response = httpClient.getresponse()

ret = json.loads(response.read(), 'utf-8')

if ret and ret['trans_result'] and len(ret['trans_result']) > 0:

result = ret['trans_result'][0]['dst']

except Exception, e:

cls.printu(u"ERROR: 翻译%s失败:%s" % (src_text, e))

finally:

if httpClient:

httpClient.close()

return result

@classmethod

def boot(cls):

excel_file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), cls.FILE_NAME)

work_book = xlrd.open_workbook(excel_file_path)

work_sheet = work_book.sheet_by_name(cls.SHEET_NAME)

start_row, start_column = cls.view_nam_2_real_name(cls.START_CELL)

end_row, end_column = cls.view_nam_2_real_name(cls.END_CELL)

collector = []

for i in xrange(start_column, end_column + 1):

for j in xrange(start_row, end_row + 1):

src_text = cls.get_cell_value(work_sheet, j, i, unicode)

cls.printu(u"翻译:%s" % src_text)

src_text = src_text.encode('utf-8')

dst_text = cls.translate(src_text)

collector.append(dst_text)

work_book = xlsxwriter.Workbook(os.path.join(os.path.dirname(os.path.abspath(__file__)), cls.NEW_FILE_NAME))

work_sheet = work_book.add_worksheet()

for idx, data in enumerate(collector):

work_sheet.write(idx, 0, data)

work_book.close()

if __name__ == '__main__':

Boot.boot()

复制这段代码到文本文件中,命名为translate.py,保存文件为UTF-8格式。或者从这里下载这个文件。高大上的程序员使用这个:

文件中“只改这里”标记内为要修改的内容。APP ID和密钥可以在你的百度翻译开放平台-管理控制台的最下面查看。直接替换‘你的APP ID’和‘你的密钥’就行。下面的依次为你要翻译的Excel文件名,输出文件名,页签名,开始格子名,结束格子名,源语言,目标语言。开始格子名和结束格子名标识翻译内容的格子范围,语言列表列在下面:

语言简写

名称

auto

自动检测

zh

中文

en

英语

yue

粤语

wyw

文言文

jp

日语

kor

韩语

fra

法语

spa

西班牙语

th

泰语

ara

阿拉伯语

ru

俄语

pt

葡萄牙语

de

德语

it

意大利语

el

希腊语

nl

荷兰语

pl

波兰语

bul

保加利亚语

est

爱沙尼亚语

dan

丹麦语

fin

芬兰语

cs

捷克语

rom

罗马尼亚语

slo

斯洛文尼亚语

swe

瑞典语

hu

匈牙利语

cht

繁体中文

vie

越南语

修改,保存完毕后,直接双击运行translate.py。等待弹出的黑窗口退出,翻译结果保存在你指定的输出文件中。

python 英语翻译 excel_Excel自动翻译相关推荐

  1. python英语翻译-python制作英语翻译小工具

    用python爬虫可以制作英语翻译小工具.来看下代码吧- import requests,json #函数封装 def translator(): session=requests.session() ...

  2. python英语翻译-python制作英语翻译小工具代码实例

    这篇文章主要介绍了python制作英语翻译小工具代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 用python爬虫可以制作英语翻译小工具.来 ...

  3. python 英语翻译_python中英文翻译模块

    从一种语言到另一种语言的文本翻译在各种网站中越来越普遍. 帮助我们执行此操作的python包称为translate. 可以通过以下方式安装此软件包. 它提供主要语言的翻译. 安装 pip instal ...

  4. python 英语翻译_Python有哪些好用的语言翻译方法

    最近有个需求,要将几万条数据从日语翻译成中文.因为数据的获取和处理用的是python代码,所以想先尝试翻译部分也用python实现. 目前网上查到的翻译方法有百度.有道以及谷歌翻译,下面会对这三个方法 ...

  5. python 英语翻译 excel_Python调用百度翻译api批量翻译Excel这工作效率

    目录 背景 实现Excel表批量翻译,解除百度翻译一次只能5000字数的限制. 源代码 百度翻译api 这里直接使用大佬已经写好的代码,自己稍加改动.账号密码需要自行去百度翻译开放平台注册.翻译语言 ...

  6. python 英语翻译_Python 实现中英文翻译

    好久不见呀,双十一,相信大家都忙着剁手吧,唉,小编没钱,只好靠敲代码来满足自己的手感,这次给大家分享的不是数据结构那个烦人的家伙了,这次用 Python 实现了一个中英文翻译的小程序,虽然现在的翻译软 ...

  7. python 英语翻译 excel_python批量将excel内容进行翻译、写入

    python批量将excel内容进行翻译.写入 发布时间:2020-06-17 09:18:07 来源:51CTO 阅读:404 作者:nineteens 1.首先是需要进行文件的读写操作,需要获取文 ...

  8. python 英语翻译_用Python将日语翻译成英语

    我正在使用Python编写一些集成两个系统的脚本.系统扫描邮箱并搜索特定主题行,然后解析电子邮件中的信息.我要寻找的元素之一是一个HTML链接,然后使用Curl将HTML代码以文本格式写入文本文件.在 ...

  9. python 英语翻译 excel_python批量将excel内容进行翻译写入功能

    由于小编初来乍到,有很多地方不是很到位,还请见谅,但是很实用的哦! 1.首先是需要进行文件的读写操作,需要获取文件路径,方式使用os.listdir(路径)进行批量查找文件. file_path = ...

  10. python 英语翻译_python中英文翻译

    代码实现: 现在该 POST 的 Data 都有了,开始正式写代码啦,下面是程序的代码,每行我都有详细的注释,相信大家通过上面的分析也是可以看明白的. import time # 时间戳 import ...

最新文章

  1. HBase设计与开发性能优化(转)
  2. c++ 使用对象指针
  3. activity 启动模式_Android世界:Activity的启动模式及其适用范围
  4. linux下varnish4配置语法(基础)
  5. Boost:aligned alloc对齐分配的测试程序
  6. python引用传递产生的问题_理解Python中传递值和引用时出现问题
  7. 动荡下如何自救 | 社招一年收割BATDK算法offer
  8. 运筹说 第36期 | 算法介绍之运输问题
  9. 超级详细-NMOS、PMOS的工作原理及相关内容整理(上)
  10. ATOM基础教程一ATOM按键绑定(6)
  11. outer apply的用法
  12. BD新标签页-最值得安装的浏览器插件
  13. 单卡就能运行AI画画模型,小白也能看懂的教程来了,还有100万卡时免费NPU算力可用丨昇思MindSpore...
  14. dom4j解析dom示例
  15. 组装一台计算机的配置,2000元组装一台i7迷你主机电脑配置推荐
  16. 咖啡在手,指数我有——指数咖啡
  17. xilinx官网申请IP
  18. 为什么今日头条捂着直播这张好牌不打?
  19. 一周信创舆情观察(5.24~5.30)
  20. 常用深度学习数据集网址

热门文章

  1. 数据库设计(一)——数据库设计
  2. 计算机怎么格式化硬盘,如何格式化硬盘
  3. 用flash MX 制作 flash video
  4. Gallery3D笔记
  5. 【数据库系统工程师】数据库系统工程师考情分析
  6. 吴军《信息论40讲》课程目录
  7. python中,(x for y in z for x in y)这个结构怎么理解?
  8. ASP.NET 路由实现页面静态化(附在线Demo和Source)
  9. Android系统签名以及生成keystore秘钥
  10. 很全的C51库函数(IIC类)(IIC、EEPROM、ADXL、PCF、HMC、L3G、BMP)