Excel批量翻译


张登友,张登友的博客,张登友的网站——

首先看看效果

测试版本,office 2019

使用公式

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

其中调用了三个函数或者接口:
一、 FILTERXML函数
FILTERXML函数为使用指定的 XPath 从 XML 内容返回特定数据。
语法:FILTERXML(xml, xpath)
FILTERXML 函数语法具有下列参数。
config.xml 必需。 有效 XML 格式的字符串。
Xpath 必需。 标准 XPath 格式中的字符串。
在我们这里使用的函数中,config.xml 就是嵌套了WEBSERVICE函数的如下字段:WEBSERVICE(“http://fanyi.youdao.com/translate?&i=”&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! 错误值。
三、有道翻译在线接口:
有道翻译并没有直接提供在线的接口,这个接口应该是以前留下的,或者并网友发现的。
http://fanyi.youdao.com/translate?&i=”&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以上
  • 连接了互联网
  • 有道翻译没有禁用这个接口

文章作者: 张登友
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 张登友 !
评论