怎样使用Microsoft Excel进行文本翻译

1,878次阅读
没有评论

Microsoft Excel 本身并不提供文本翻译功能,但您可以使用其他工具来实现这一目的,例如:

  1. 使用谷歌翻译:打开谷歌翻译网站(https://translate.google.com),将要翻译的文本复制并粘贴到左侧的文本框中,然后选择目标语言。然后,将翻译结果复制并粘贴到 Excel 中的相应单元格。
  2. 使用翻译函数:Excel 提供了一些函数,例如 GOOGLETRANSLATE 和 BINGTRANSLATE,可以在 Excel 中进行翻译。这些函数使用互联网翻译服务来翻译文本。这些函数不是默认加载的,您需要使用 Excel 的函数向导添加它们。要使用这些函数,您需要输入翻译文本和源语言以及目标语言的代码。例如,使用 GOOGLETRANSLATE 函数将单元格 A1 中的文本翻译成英文:=GOOGLETRANSLATE(A1,"auto","en")
  3. 使用宏:您可以编写一个宏来使用外部翻译 API 来翻译 Excel 工作簿中的文本。这需要一些编程技能,但是您可以找到一些可用的宏代码或者可以自己编写代码。

请注意,使用这些方法翻译文本可能会导致一些翻译错误或不准确的结果,特别是当涉及到复杂或技术性的术语时。所以在使用翻译工具时要小心,需要逐个单元格核对并校对翻译结果。

谷歌翻译函数
GoogleTranslate(text, [from_lanaguage], [to_lanaguage])。参数 text 指待翻译的内容,from_language 指待翻译的语言,默认是英文 en,to_language 指目标翻译语言,默认翻译是中文 zh-CN,即将英文翻译成中文。该公式使用谷歌移动端网页翻译接口,可即时返回翻译结果,适合关键词、单词等翻译场景。或通过公式 =GetGoogleLanguageList() 查询谷歌语言代码。

谷歌翻译函数
GoogleTranslateByServer(text, [from_lanaguage], [to_lanaguage])。参数 text 指待翻译的内容,from_language 指待翻译的语言,默认是英文 en,to_language 指目标翻译语言,默认翻译是中文 zh-CN,即将英文翻译成中文。该函数每批次翻译需 10-30 秒,每批次可处理 100 个翻译请求或字符合计小于 4000。当出现“后台正在处理”或为空时,请按照发送的请求数量多少,稍后一段时间再刷新公式获得翻译结果。谷歌翻译视频教程 谷歌小语种翻译视频教程 收费函数 下载语言代码, 或通过公式 =GetGoogleLanguageList() 查询谷歌语言代码。

谷歌翻译函数
GoogleTranslateW(text, [from_lanaguage], [to_lanaguage]) 参数 text 指待翻译的文字,参数 text 指待翻译的内容,from_language 指待翻译的语言,默认是英文 en,to_language 指目标翻译语言,默认翻译是中文 zh-CN,即将英文翻译成中文。该函数调用谷歌网页翻译接口。

微软翻译函数
BingTranslateW(text, [from_lanaguage], [to_lanaguage]) 此函数需借助 Excel 浏览器。查看演示 收费函数 下载语言代码, 或通过公式 =GetBingLanguageList() 查询 Bing 语言代码。

百度翻译 API 函数
Fanyi(text, [from_lanaguage], [to_lanaguage], [App_id],[Secret_key]) 参数 text 指待翻译的内容,from_language 指待翻译的语言,默认是英文 en,to_language 指目标翻译语言,默认翻译是中文 zh,即将英文翻译成中文。App_id 指百度翻译开放平台应用 id;Secret_key 指百度翻译开放平台应用密钥,可从百度翻译开放平台申请。该函数调用百度翻译 API 接口。

百度翻译函数
BaiduFanyiW(text, [from_lanaguage], [to_lanaguage]) 参数 text 指待翻译的内容,from_language 指待翻译的语言,默认是英文 en,to_language 指目标翻译语言,默认翻译是中文 zh-CN,即将英文翻译成中文。该函数调用网页翻译接口。

Deepl 翻译函数
DeepLTranslate(text, [from_lanaguage], [to_lanaguage])。以 DeepL 世界领先的神经网络技术为动力,用卓越的机器翻译来翻译您的文本。可通过公式 =GetDeepLLanguageList() 查询 DeepL 语言代码。如果出现“后台正在处理”请等待数分钟后再重新计算公式,为了保证翻译准确性,限制了翻译速度,如果追求翻译准确性,请耐心等待。

Deepl 翻译函数
DeepLTranslateW(text, [from_lanaguage], [to_lanaguage]) 以 DeepL 世界领先的神经网络技术为动力,用卓越的机器翻译来翻译您的文本。可通过公式 =GetDeepLLanguageList() 查询 DeepL 语言代码。

搜狗翻译函数
SogouFanyiW()(text, [from_lanaguage], [to_lanaguage]) 参数 text 指待翻译的文字。该函数调用搜狗网页翻译接口。可通过公式 =GetSogouLanguageList() 查询搜狗语言代码。

有道翻译 API 函数
YoudaoFanyi(text, [from_lanaguage], [to_lanaguage], [App_id],[Secret_key]) 参数 text 指待翻译的内容,from_language 指待翻译的语言,默认是英文 en,to_language 指目标翻译语言,默认翻译是中文 zh-CHS,即将英文翻译成中文。App_id 指有道翻译开放平台应用 id;Secret_key 指有道翻译开放平台应用密钥,可从有道翻译开放平台申请。该函数调用有道翻译 API 接口。收费函数 可通过公式 =GetYoudaoLanguageList() 查询有道语言代码。

阿里云翻译函数(免费)
AliyunFanyi(accessKeyId, accessSecret, text, [from_lanaguage], [to_lanaguage]) 参数 text 指待翻译的文字。该函数后台调用阿里云翻译接口。

有道翻译函数(免费)
YoudaoFanyiW(text) 参数 text 指待翻译的文字。该函数调用有道网页翻译接口。

钉钉翻译函数(免费)
DDFanyi(text,[from_lanaguage], [to_lanaguage]) 参数 text 指待翻译的文字。该函数调用钉钉 AI 文本翻译接口。

如何在 VBA 中调用翻译公式
在 VBA 中也可调用 Excel API 函数库的函数,如下图所示,在 VBA 中调用自定义函数 Fanyi()。值得注意的是,输入参数时使用到的双引号,必须转义,连续输入两个双引号表示输入一个双引号字符串。

宏代码方案

以下是一个使用外部翻译 API 来翻译 Excel 工作簿中文本的宏的示例。请注意,此示例使用的是谷歌翻译 API,您需要获取 API 密钥来使用此宏。

' 定义使用的 API 密钥和翻译目标语言代码
Const API_KEY As String = "your_api_key_here"
Const TARGET_LANGUAGE As String = "en" ' 英文

Sub TranslateCells()
    Dim cell As Range
    Dim translation As String
    Dim json As Object
    Dim i As Integer
    
    ' 循环处理所有选定的单元格
    For Each cell In Selection
        ' 使用谷歌翻译 API 进行翻译
        translation = TranslateWithGoogle(cell.Value, TARGET_LANGUAGE, API_KEY)
        
        ' 将翻译结果写回单元格
        cell.Offset(0, 1).Value = translation
        
        ' 等待一段时间,避免频繁访问 API
        Application.Wait (Now + TimeValue("0:00:01"))
    Next cell
End Sub

Function TranslateWithGoogle(text As String, targetLanguage As String, apiKey As String) As String
    Dim xhr As Object
    Dim json As Object
    Dim translation As String
    
    ' 创建 XMLHttpRequest 对象
    Set xhr = CreateObject("MSXML2.XMLHTTP")
    
    ' 设置请求的 URL 和参数
    xhr.Open "POST", "https://translation.googleapis.com/language/translate/v2?key=" & apiKey, False
    xhr.setRequestHeader "Content-Type", "application/json"
    xhr.send "{""q"":""" & text & """,""target"":""" & targetLanguage & """}"
    
    ' 将响应数据解析为 JSON 对象
    Set json = JsonConverter.ParseJson(xhr.responseText)
    
    ' 从 JSON 对象中获取翻译结果
    translation = json("data")("translations")(1)("translatedText")
    
    ' 返回翻译结果
    TranslateWithGoogle = translation
End Function

这个宏会循环处理选定的单元格,并将每个单元格中的文本翻译为目标语言,然后将翻译结果写回单元格的右侧。在循环的每一次迭代中,宏都会使用 TranslateWithGoogle 函数来调用谷歌翻译 API,并获取翻译结果。为了避免频繁访问 API,宏在每个单元格处理完毕后会等待 1 秒钟。请注意,此宏中使用了一个名为 JsonConverter 的 JSON 解析器库,您需要将其添加到 VBA 项目中才能使宏正常工作。

正文完
 
Michael
版权声明:本站原创文章,由 Michael 2023-03-03发表,共计4132字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码