某些时候我们需要使用翻译软件来进行翻译,比较常见的有灵格斯翻译、有道翻译、百度翻译等。可以选择在线翻译,也可以使用软件进行翻译。虽然现在都是机翻,毕竟人工翻译的价格在那,一个字就要最低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(“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以上
-
连接了互联网
-
有道翻译没有禁用这个接口
是不是比较实用的一个功能代码?
一行代码实现Microsoft.Office.EXCEL的自动翻译功能www.iappi.cn
某些时候我们需要使用翻译软件来进行翻译,比较常见的有灵格斯翻译、有道翻译、百度翻译等。可以选择在线翻译,也可以使用软件进行翻译。虽然现在都是机翻,毕竟人工翻译的价格在那,一个字就要最低0.11元(有道翻译价格)。而且平时翻译用的也不多,也只是需要知道个大概的意思就行了,所以机翻也其实有95%以上的准确率了,够用了。但如果遇到excel中存在大量需要翻译的单元格呢?不能总是一个一个复制过去,又再粘帖...
=FILTERXML(
WEBSERVICE
("http://fanyi.youdao.com/translate?&i="&A2&"&doctype=xml&version"),"//translation")
然后向下填充,即可将A列中的文字
翻译
成英文。
记得将A2换成你自己的。。。
原理:FILTERXML函数
这里我们使用了
Excel
中的网络类函数FILTERXML,这是
Excel
2013版本之后新增的一个
通过
EXCEL
中的FILTERXML函数
实现
批量
翻译
使用FILTERXML函数和在线
翻译
实现
EXCEL
批量
翻译
FILTERXML语法WEBSERVE语法举例说明使用步骤1.确定网址,这边使用有道云的网址2.将网站
翻译
输出格式转为xml格式3.在网站中找到当前需要提取的中文的路径4.函数整合
使用FILTERXML函数和在线
翻译
实现
EXCEL
批量
翻译
利用FILTERXML函数提取XML数据(
翻译
网站转换而来)中的字段值
FILTERXML 函数使用指定的 xpath 从 XML 内容返回特定数据。
=FILTERXML(
WEBSERVICE
("http://fanyi.youdao.com/translate?&i="&A1&"&doctype=xml&version"),"//translation")
函数解析:
要
实现
中英文的
翻译
需要用到两个网络函数:
WEBSERVICE
和FILTERXML,同时要确认电脑是处于联网状态才能
实现
此
功能
,两个函数的使用方法如下:
WEBSERV
if (hwnd != NULL)
SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); //
置顶
窗口
return 0;
上面的
代码
通过调用 FindWindow 函数获取
窗口
句柄,然后通过调用 SetWindowPos 函数将
窗口
置顶
。
如果需要取消
窗口
置顶
,可以将参数 HWND_TOPMOST 改为 HWND_NOTOPMOST。
此外,还需要注意的是,在
置顶
窗口
时,可能会出现一些问题,例如
窗口
没有正确地渲染,或者
窗口
的控件无法响应鼠标事件。这可能是由于
窗口
的 Z 顺序问题造成的。因此,在
置顶
窗口
时,需要注意检查是否存在这类问题,并适当地调整
窗口
的 Z 顺序以避免这类问题。