添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
首发于 好软发现

一行代码实现Microsoft.Office.EXCEL的自动翻译功能

某些时候我们需要使用翻译软件来进行翻译,比较常见的有灵格斯翻译、有道翻译、百度翻译等。可以选择在线翻译,也可以使用软件进行翻译。虽然现在都是机翻,毕竟人工翻译的价格在那,一个字就要最低0.11元(有道翻译价格)。而且平时翻译用的也不多,也只是需要知道个大概的意思就行了,所以机翻也其实有95%以上的准确率了,够用了。但如果遇到excel中存在大量需要翻译的单元格呢?不能总是一个一个复制过去,又再粘帖结果回来吧。这时候,一行简单的代码,就可以帮助我们实现相应的要求。先看一个GIF动图的演示,词语也算比较简单的:
可以看到,非常之快,极速之间则完成了相应的翻译了。支持中英互译。
这一切,都源自于单元格中的函数代码为:

=FILTERXML(WEBSERVICE("http://fanyi.youdao.com/translate?&i="&A1&"&doctype=xml&version"),"//translation")



其中调用了三个函数或者接口:
一、 FILTERXML函数
FILTERXML函数为使用指定的 XPath 从 XML 内容返回特定数据。
语法:FILTERXML(xml, xpath)
FILTERXML 函数语法具有下列参数。
config.xml 必需。 有效 XML 格式的字符串。
Xpath 必需。 标准 XPath 格式中的字符串。
在我们这里使用的函数中,config.xml 就是嵌套了WEBSERVICE函数的如下字段:WEBSERVICE(“ fanyi.youdao.com/transl ”&A1&”&doctype=xml&version”)
Xpath就是//translation
二、WEBSERVIC函数
WEBSERVIC函数为返回 Intranet 或 Internet 上的 Web 服务数据。大多数情况下是不安全的,会提出安全警告,所以要忽视或者容许运行。
语法:WEBSERVICE(url)
WEBSERVICE 函数语法具有下列参数。
Url 必需。 Web 服务的 URL。
备注
如果参数无法返回数据,则 WEBSERVICE 返回错误值 #VALUE!。
如果参数导致字符串无效或含有的字符超过允许的单元格限制(32767 个字符),则 WEBSERVICE 返回错误值 #VALUE!。
如果 url 字符串所含字符超过 GET 请求允许的 2048 个字符,则 WEBSERVICE 返回错误值 #VALUE!。
对于不支持的协议,例如 ftp :// 或 file://,WEBSERVICE 返回 #VALUE! 错误值。
三、有道翻译在线接口:
有道翻译并没有直接提供在线的接口,这个接口应该是以前留下的,或者并网友发现的。
fanyi.youdao.com/transl ”&A1&”&doctype=xml&version
这段代码的含义是,使用有道翻译的接口,将A1单元格中的文字翻译后,并提供xml格式。正常情况下,网页上返回的结果是:

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<response type="EN2ZH_CN" errorCode="0" elapsedTime="1">
<input>
<![CDATA[ administrator ]]>
</input>
<translation>
<![CDATA[ 管理员 ]]>
</translation>
</response>

那么通过Xpath //translation 的位置,可以定义到CDATA 管理员字段,则把该字段提取,返回特定值到数据到B1单元格中。
如果我们使用input来定义,那么返回的值就是输入值了。
这个函数代码的使用还有前提:

  • Excel的版本在2013以上
  • 连接了互联网
  • 有道翻译没有禁用这个接口

是不是比较实用的一个功能代码?

更多:

编辑于 2019-08-27 12:56

文章被以下专栏收录