1. 程式人生 > 其它 >有道翻譯經常翻譯不出來怎麼回事_一行程式碼實現Microsoft.Office.EXCEL的自動翻譯功能...

有道翻譯經常翻譯不出來怎麼回事_一行程式碼實現Microsoft.Office.EXCEL的自動翻譯功能...

技術標籤:有道翻譯經常翻譯不出來怎麼回事

某些時候我們需要使用翻譯軟體來進行翻譯,比較常見的有靈格斯翻譯、有道翻譯、百度翻譯等。可以選擇線上翻譯,也可以使用軟體進行翻譯。雖然現在都是機翻,畢竟人工翻譯的價格在那,一個字就要最低0.11元(有道翻譯價格)。而且平時翻譯用的也不多,也只是需要知道個大概的意思就行了,所以機翻也其實有95%以上的準確率了,夠用了。但如果遇到excel中存在大量需要翻譯的單元格呢?不能總是一個一個複製過去,又再粘帖結果回來吧。這時候,一行簡單的程式碼,就可以幫助我們實現相應的要求。先看一個GIF動圖的演示,詞語也算比較簡單的:
可以看到,非常之快,極速之間則完成了相應的翻譯了。支援中英互譯。

這一切,都源自於單元格中的函式程式碼為:

0a4f8047251247521a680dd8f166d5ae.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>

ce96629add9279d18006dac2a3d2a991.png

那麼通過Xpath //translation 的位置,可以定義到CDATA 管理員欄位,則把該欄位提取,返回特定值到資料到B1單元格中。
如果我們使用input來定義,那麼返回的值就是輸入值了。
這個函式程式碼的使用還有前提:

  • Excel的版本在2013以上
  • 連線了網際網路
  • 有道翻譯沒有禁用這個介面

是不是比較實用的一個功能程式碼?

更多:

一行程式碼實現Microsoft.Office.EXCEL的自動翻譯功能​www.iappi.cn 6b5a9db4ccbe51d5f5188700c6e73026.png