- 1、本文档共2页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EExxcceellVVBBAA调调⽤⽤百百度度翻翻译译AAPPII
有同事找我处理Excel中译英,本来Excel有 ⾃带的翻译 具,⽆奈公司限制太多,这些东西都⽤不了。想了⼀下,试试调⽤百度翻译API来做⼀个
翻译。
由于限制太多,确定使⽤Excel VBA + VBS的模式去处理这个问题。
百度翻译API
根据⽂档要求先去获取API下来的内容
Public Function getHttp(q As String) As String
调⽤API (new)
Dim HttpReq As Object
Dim url As String
Dim q_ enco e As String
Dim sign As String
q_ enco e = Application.WorksheetFunction.Enco eURL(q)
sign = MD5_32(appi + q + salt + mykey)
Set HttpReq = CreateObject(Microsoft.XMLHTTP) 创建XMLHTTP对象
url = http://api.fanyi.bai /api/trans/vip/translate?q= q_ enco e from=zhto=enappi = appi salt= salt sign= sign
Debug.Print (url)
With HttpReq
.Open GET, url, False
.setRequestHea er content-type, application/x-www-form-urlenco e
.SEND
Debug.Print .responsetext
En With
getHttp = url
getHttp = HttpReq .responsetext
En Function
获取的内容变成⽂本了,古⽼的VBA并没有直接处理Json的。有很多种⽅案,例如⽤JS去处理JSon,但是因为怕那获取公司最后⼜不⽀持,选⽤
了VBS⽤正则表达式去分析下来的⽂本内容。
Public Function DstToTranslate(j As String) As String
Dim reg As Object
Set reg = CreateObject(vbscript.regexp)
Dim str As String
Dim match As Object
Dim matches As Object
Dim k As String
str = getHttp(j)
reg.Global = True
reg.Pattern = st\:([^]*)
Set matches = reg.Execute(str)
For Each match In matches
k = match
Next
str = k
reg.Pattern = st\:
k = reg.Replace(str, )
DstToTranslate = k
En Function
那么在Excel中直接调⽤
DstToTranslate(string)
就可以直接得出结果了。
中途碰到各种⼩问题,例如URL的格式不对,忘了算成MD5合成sign,正则表达式写错了不出结果。之后有时间在修整把代码备注和⽂档还有图
补上。
文档评论(0)