在 Excel 裡用 ChatGPT 翻譯圖片上的文字

閱讀時間約 14 分鐘
你應該已經聽說了 OpenAI ChatGPT 是如何如何強大,如何如何創造奇跡。。。我就不再畫蛇添足多加描述了。我們不如來讓它來為我們做點正經事(而不是把它當成玩具)。最近我有個朋友和我說了以下的問題:
  1. 他需要手動把圖片裡的文字一個一個寫出來(在電腦上)
  2. 他需要翻譯這些文字
其實。。。以上我們可以用一種方法,一石二鳥,一次性解決以上的問題。我的方案是,在 Excel 上用 OpenAI ChatGPT 來解決。 OpenAI ChatGPT.
1. 首先,你得先建立一個 Excel 文件,儲存為 .xlsm 文件格式,也就是可以用 Macro 的格式。
2. 在菜單裡,點擊 Developer 選項,然後選擇 Visual Basic。如果你沒辦法找到 Developer 選項,看這裡
3. 在 Visual Basic 的視窗裡,點擊 Tools,然後 References,得注意主要加入 “Microsoft XML, v6.0” 庫。
4. 在主要菜單裡選擇 Insert,然後是 Module。
5. 這時候,你會看見 Module 1 出現在 Project 的對話框。點擊它,把以下的代碼粘貼到編輯器裡。記得把你的 OpenAPI 的密鑰也寫進去。看不明白?別擔心。。。這裡本來就是低代碼,我們為你准備就是。
Option Explicit
Private p&, token, dic


Function TranslateCell(cellContent As Range, targetLanguage As String) As String
Dim httpRequest As Object
Dim apiKey As String
Dim apiUrl As String
Dim postData As String
Dim response As String
Dim jsonResponse As Object
Dim translatedText As String

' Replace with your OpenAI API key
apiKey = "YOUR-OPEN-API-KEY"

' Set the API URL for ChatGPT 3.5
apiUrl = "https://api.openai.com/v1/chat/completions"

' Prepare the POST data
postData = "{""model"": ""gpt-3.5-turbo"", ""messages"": [{""role"": ""system"", ""content"": ""You are an expert translator""}, {""role"": ""user"", ""content"": ""Translate this word into " & targetLanguage & ", answer only: " & cellContent.Text & """}], ""temperature"":0.7, ""max_tokens"":1000, ""top_p"":1, ""frequency_penalty"":0, ""presence_penalty"":0}"

' Clean up escape caharacters
postData = Replace(postData, "'", "")

' Create an HTTP request object
Set httpRequest = CreateObject("MSXML2.ServerXMLHTTP.6.0")

' Configure the HTTP request
With httpRequest
.Open "POST", apiUrl, False
.SetRequestHeader "Content-Type", "application/json"
.SetRequestHeader "Authorization", "Bearer " & apiKey
.Send postData
End With

' Get the HTTP response
response = httpRequest.ResponseText

' Parse the JSON response
Set jsonResponse = ParseJSON(response)

' Get the translated text
translatedText = jsonResponse("obj.choices(0).message.content")

' Return the translated text
TranslateCell = translatedText
End Function


Function ParseJSON(json$, Optional key$ = "obj") As Object
p = 1
token = Tokenize(json)
Set dic = CreateObject("Scripting.Dictionary")
If token(p) = "{" Then ParseObj key Else ParseArr key
Set ParseJSON = dic
End Function
Function ParseObj(key$)
Do: p = p + 1
Select Case token(p)
Case "]"
Case "[": ParseArr key
Case "{"
If token(p + 1) = "}" Then
p = p + 1
dic.Add key, "null"
Else
ParseObj key
End If

Case "}": key = ReducePath(key): Exit Do
Case ":": key = key & "." & token(p - 1)
Case ",": key = ReducePath(key)
Case Else: If token(p + 1) <> ":" Then dic.Add key, token(p)
End Select
Loop
End Function
Function ParseArr(key$)
Dim e&
Do: p = p + 1
Select Case token(p)
Case "}"
Case "{": ParseObj key & ArrayID(e)
Case "[": ParseArr key
Case "]": Exit Do
Case ":": key = key & ArrayID(e)
Case ",": e = e + 1
Case Else: dic.Add key & ArrayID(e), token(p)
End Select
Loop
End Function
'-------------------------------------------------------------------
' Support Functions
'-------------------------------------------------------------------
Function Tokenize(s$)
Const Pattern = """(([^""\\]|\\.)*)""|[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?|\w+|[^\s""']+?"
Tokenize = RExtract(s, Pattern, True)
End Function
Function RExtract(s$, Pattern, Optional bGroup1Bias As Boolean, Optional bGlobal As Boolean = True)
Dim c&, m, n, v
With CreateObject("vbscript.regexp")
.Global = bGlobal
.MultiLine = False
.IgnoreCase = True
.Pattern = Pattern
If .TEST(s) Then
Set m = .Execute(s)
ReDim v(1 To m.Count)
For Each n In m
c = c + 1
v(c) = n.Value
If bGroup1Bias Then If Len(n.submatches(0)) Or n.Value = """""" Then v(c) = n.submatches(0)
Next
End If
End With
RExtract = v
End Function
Function ArrayID$(e)
ArrayID = "(" & e & ")"
End Function
Function ReducePath$(key$)
If InStr(key, ".") Then ReducePath = Left(key, InStrRev(key, ".") - 1) Else ReducePath = key
End Function
Function ListPaths(dic)
Dim s$, v
For Each v In dic
s = s & v & " --> " & dic(v) & vbLf
Next
Debug.Print s
End Function
Function GetFilteredValues(dic, match)
Dim c&, i&, v, w
v = dic.keys
ReDim w(1 To dic.Count)
For i = 0 To UBound(v)
If v(i) Like match Then
c = c + 1
w(c) = dic(v(i))
End If
Next
ReDim Preserve w(1 To c)
GetFilteredValues = w
End Function
Function GetFilteredTable(dic, cols)
Dim c&, i&, j&, v, w, z
v = dic.keys
z = GetFilteredValues(dic, cols(0))
ReDim w(1 To UBound(z), 1 To UBound(cols) + 1)
For j = 1 To UBound(cols) + 1
z = GetFilteredValues(dic, cols(j - 1))
For i = 1 To UBound(z)
w(i, j) = z(i)
Next
Next
GetFilteredTable = w
End Function
Function OpenTextFile$(f)
With CreateObject("ADODB.Stream")
.Charset = "utf-8"
.Open
.LoadFromFile f
OpenTextFile = .ReadText
End With
End Function
6. 好了,你基本上已經完成,現在可以復制你要翻譯的圖片。
7. 回到你主要的 Excel 文件,在菜單裡,選擇 Data,點擊 From Picture 選項,然後再選擇是否來自文件還是粘貼版。有時候你會見到服務器繁忙的錯誤訊息,等一會再嘗試就是。
8. 這時候,你應該看到文字已經從圖片解析出來。選擇那些你要翻譯的文字,然後用以下的方程式
=TranslateCell ([你要翻譯的 EXCEL CELL], "[你需要的語言]")
9. 你可以翻譯成任何語言,只要用同一個方程式就是。
VBA 自身其實並不支持 JSON 解讀。JSON 解讀其實有好幾種方法,我們這裡選用的是源自 Daniel Ferry 的方法。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
我熱愛電影,尤其是那些充滿科幻元素、展示人工智能的影片。由於人工智能的熱度猶如跑步機上的機器人一樣迅速攀升,我精選了一些具有引人入勝的人工智能概念的電影,讓你不禁懷疑這些電影是否很快就會成為我們的現實。那麼,准備好爆米花,一起深入了解吧! 魔鬼終結者(1984)/ 魔鬼終結者 2 (1991) 魔鬼
探究低代码/无代码迷思的幽默一面,我们一起来纠正错误观念,揭开隐藏的真相,并为有效使用这些工具提供一些见解。
這裡我們呈現如何在五分鐘內用 Contact Form 7 搞定網頁表格
正在尋找 SeaTable / Airtable 以外的選擇?NocoDB 也許是個不錯的自行安裝的選擇,還是一項開源項目。
我熱愛電影,尤其是那些充滿科幻元素、展示人工智能的影片。由於人工智能的熱度猶如跑步機上的機器人一樣迅速攀升,我精選了一些具有引人入勝的人工智能概念的電影,讓你不禁懷疑這些電影是否很快就會成為我們的現實。那麼,准備好爆米花,一起深入了解吧! 魔鬼終結者(1984)/ 魔鬼終結者 2 (1991) 魔鬼
探究低代码/无代码迷思的幽默一面,我们一起来纠正错误观念,揭开隐藏的真相,并为有效使用这些工具提供一些见解。
這裡我們呈現如何在五分鐘內用 Contact Form 7 搞定網頁表格
正在尋找 SeaTable / Airtable 以外的選擇?NocoDB 也許是個不錯的自行安裝的選擇,還是一項開源項目。
你可能也想看
Google News 追蹤
Thumbnail
微軟的EXCEL又出了一個新函數了【TRANSLATE】,TRANSLATE這個單字翻譯成中文就是翻譯的意思,他的功能就是"翻譯"。 有了這個函數就可以直接在原有資料進行翻譯,不用再把資料丟到Google翻譯或是GPT了。 🔎函數說明 TRANSLATE(要翻譯的內容,原始語言,翻
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
ChatGPT(全名:聊天生成預訓練轉換器)是一個由 OpenAI 開發的人工智慧聊天機器人程式。它於 2022 年 11 月推出,使用了基於 GPT-3.5、GPT-4 和 GPT-4o 架構的大型語言模型,並以強化學習進行訓練。
Thumbnail
不會寫Excel VBA不再是問題了!如何讓數據說話,是職場必備的技巧!而Excel又是搜集數據的好工具,今天石頭哥帶你透過ChatGPT 來神救援!
Thumbnail
在這篇文章中,我們將探討如何利用ChatGPT這個強大的語言模型來學習其他語言,並比較其與Google翻譯的優缺點。無論你是想提升外語能力還是在跨文化交流中更加流暢,ChatGPT都是一個極具價值的工具。
Thumbnail
OpenAI 正在開发兩種類型的 AI 助手,這些軟體將協助完成原本由人類執行的任務,而無須人類密切監督。其中一種類型的 AI 代理人可以透過接管使用者的設備來自動化某些複雜任務,例如 ChatGPT 助理將數據從文檔轉移到電子表格或填寫費用報告並將它們輸入到會計軟體中。此類 AI 助理將需要使用者
Thumbnail
給出好的指令也是一門學問! 我們在業界稱為「指令工程」(Prompt Engineering),OpenAI 官方也有公布指令工程的操作資訊,但是今天我們只要學會這樣的操作方式,你可以贏過現在多數的AI使用者。
Thumbnail
本文介紹如何設置OpenAI API密鑰並使用Whisper API轉寫音訊檔案。文章詳細說明了轉寫單個音訊檔案,以及將長音訊分割並轉寫的過程。透過範例演示,讀者可以學習如何將音訊轉寫為文字,提高工作效率。
Thumbnail
ChatGPT最擅長的就是文本處理,用來翻譯字幕應該也是一片蛋糕吧!但實際操作測試,卻發現沒那麼容易,原因是影片翻譯要考量的因素太多包括: ▪️時間戳記對齊 ▪️適合閱讀且中英文對照文句長度 ▪️貼合講者原意語氣風格 ▪️專業術語與專有名詞 還有GPT一次可以處理的資訊量有限,超過
Thumbnail
大家好,我是萊丘,今天要與大家分享的是 OpenAI最新公布的AI提示詞生成指南。這份指南分成六大要點,幫助我們如何有效地跟ChatGPT互動,就算你不會寫 code 也可以輕鬆掌握。 要點一:指令清晰且具體 大家都知道,ChatGPT 雖然聰明,但它不是讀心術的高手,所以我們需
Thumbnail
微軟的EXCEL又出了一個新函數了【TRANSLATE】,TRANSLATE這個單字翻譯成中文就是翻譯的意思,他的功能就是"翻譯"。 有了這個函數就可以直接在原有資料進行翻譯,不用再把資料丟到Google翻譯或是GPT了。 🔎函數說明 TRANSLATE(要翻譯的內容,原始語言,翻
Thumbnail
本文介紹瞭如何將Excel圖表轉成圖片,並解決了圖表資料量大時可能出現的錯誤訊息。此外,還分享了ChatGPT 4o (訂閱付費版) 的幫助與成功轉換圖片的經驗。 還有周杰倫關於一技之長的觀點分享,激勵讀者找到自己的優勢和興趣。並提供了相關參考文獻,讓讀者進一步深入瞭解主題。
Thumbnail
ChatGPT(全名:聊天生成預訓練轉換器)是一個由 OpenAI 開發的人工智慧聊天機器人程式。它於 2022 年 11 月推出,使用了基於 GPT-3.5、GPT-4 和 GPT-4o 架構的大型語言模型,並以強化學習進行訓練。
Thumbnail
不會寫Excel VBA不再是問題了!如何讓數據說話,是職場必備的技巧!而Excel又是搜集數據的好工具,今天石頭哥帶你透過ChatGPT 來神救援!
Thumbnail
在這篇文章中,我們將探討如何利用ChatGPT這個強大的語言模型來學習其他語言,並比較其與Google翻譯的優缺點。無論你是想提升外語能力還是在跨文化交流中更加流暢,ChatGPT都是一個極具價值的工具。
Thumbnail
OpenAI 正在開发兩種類型的 AI 助手,這些軟體將協助完成原本由人類執行的任務,而無須人類密切監督。其中一種類型的 AI 代理人可以透過接管使用者的設備來自動化某些複雜任務,例如 ChatGPT 助理將數據從文檔轉移到電子表格或填寫費用報告並將它們輸入到會計軟體中。此類 AI 助理將需要使用者
Thumbnail
給出好的指令也是一門學問! 我們在業界稱為「指令工程」(Prompt Engineering),OpenAI 官方也有公布指令工程的操作資訊,但是今天我們只要學會這樣的操作方式,你可以贏過現在多數的AI使用者。
Thumbnail
本文介紹如何設置OpenAI API密鑰並使用Whisper API轉寫音訊檔案。文章詳細說明了轉寫單個音訊檔案,以及將長音訊分割並轉寫的過程。透過範例演示,讀者可以學習如何將音訊轉寫為文字,提高工作效率。
Thumbnail
ChatGPT最擅長的就是文本處理,用來翻譯字幕應該也是一片蛋糕吧!但實際操作測試,卻發現沒那麼容易,原因是影片翻譯要考量的因素太多包括: ▪️時間戳記對齊 ▪️適合閱讀且中英文對照文句長度 ▪️貼合講者原意語氣風格 ▪️專業術語與專有名詞 還有GPT一次可以處理的資訊量有限,超過
Thumbnail
大家好,我是萊丘,今天要與大家分享的是 OpenAI最新公布的AI提示詞生成指南。這份指南分成六大要點,幫助我們如何有效地跟ChatGPT互動,就算你不會寫 code 也可以輕鬆掌握。 要點一:指令清晰且具體 大家都知道,ChatGPT 雖然聰明,但它不是讀心術的高手,所以我們需