Automation
Google Workspace+GAS 自動化零基礎入門
用 Google Apps Script 把 Gmail、雲端硬碟、表單、試算表串成自動流程。賴家榮零基礎入門:看懂工具、拆解流程、做出第一個自動化。附完整簡報下載。
閱讀知識
很多團隊都有一份「中文母版」文件,需要另外生出英文、日文版本。以前是複製一份、貼進翻譯網站、再一段一段貼回來,既慢又容易漏段。這篇教學要教你把 Gemini 直接裝進 Google 文件裡,開一份文件、按一下選單,就能把整份內容翻成你要的語言。
你不需要會寫程式,只要跟著步驟一格一格貼上程式碼即可。看完之後,你會擁有一個屬於自己、可以重複使用的文件翻譯工具,之後任何文件都能沿用。
手動翻譯最大的問題不是「翻得慢」,而是「格式亂」。你把文字丟到翻譯網站,貼回來之後標題、清單、段落全都黏成一團,還得花時間重排。用 DocumentApp 是以「段落」為單位讀寫,翻譯完直接對應回原本的位置,版面幾乎不用重整。
另一個好處是它住在 Google 文件裡。工具就在你每天工作的地方,不必切換視窗、不必複製貼上,同事打開同一份文件也能用同一個選單。加上 Gemini 對上下文的理解比傳統逐字翻譯更自然,專有名詞、語氣都能在提示詞裡交代清楚,品質更貼近真人。
動作打開你準備好的測試文件,確認裡面有幾段中文文字。之後這個工具會綁在這份文件上。
常見地雷如果文件是空的,等一下執行會沒有東西可翻,先貼幾段字進去。
動作點上方選單「擴充功能 → Apps Script」,會開一個新分頁,就是我們寫程式的地方。
常見地雷找不到「擴充功能」通常是因為你在手機版,請改用電腦瀏覽器。
動作在 Apps Script 左側點「專案設定(齒輪)→ 指令碼屬性 → 新增指令碼屬性」,屬性名稱填 GEMINI_API_KEY,值貼上你的金鑰,按儲存。
常見地雷金鑰貼到程式碼裡雖然也能跑,但分享文件時會外流,務必放在指令碼屬性。
動作把編輯器內原本的內容清空,貼上下方第一段 askGemini 程式碼。這是所有教學共用的「打電話給 Gemini」函式。
常見地雷網址與金鑰參數要完整,少一個字元就會回傳錯誤。照抄即可。
動作接著在下方貼上第二段主流程程式碼,它負責建立選單、讀出段落、呼叫 askGemini、再把翻譯結果寫回文件。
常見地雷TARGET_LANG 這個變數就是目標語言,想翻日文就改成「日文」,其餘不用動。
動作按上方磁碟片圖示存檔,回到 Google 文件分頁按 F5 重新整理。稍等幾秒,選單列會多出一個「AI 翻譯」。
常見地雷沒出現選單多半是 onOpen 沒存到,回編輯器確認函式名稱是 onOpen。
動作點「AI 翻譯 → 翻譯整份文件」。第一次會跳出授權視窗,選你的帳號、點「進階 → 前往專案(不安全)→ 允許」。
常見地雷看到「Google 尚未驗證」是正常的,因為這是你自己寫的程式,放心允許。
動作授權後回到文件,稍等 Gemini 回應,翻譯內容就會附在每段原文下方。確認段落有沒有對齊、語氣是否自然。
常見地雷若整份很長會需要多等幾秒;若中途停住,多半是段落太多超時,可分批選取執行。
下面第一段程式碼是「打電話給 Gemini」的共用函式,之後每一篇教學都會用到它,直接照抄不用改。
function askGemini(prompt) {
const key = PropertiesService.getScriptProperties().getProperty('GEMINI_API_KEY');
const url = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=' + key;
const payload = { contents: [{ parts: [{ text: prompt }] }] };
const res = UrlFetchApp.fetch(url, { method:'post', contentType:'application/json', payload: JSON.stringify(payload), muteHttpExceptions:true });
return JSON.parse(res.getContentText()).candidates[0].content.parts[0].text.trim();
}
第二段是主流程:建立選單、逐段讀出文件、翻譯後回填。想換語言只要改最上面的 TARGET_LANG。
const TARGET_LANG = '英文'; // 想翻日文就改成 '日文'
function onOpen() {
DocumentApp.getUi()
.createMenu('AI 翻譯')
.addItem('翻譯整份文件', 'translateDoc')
.addToUi();
}
function translateDoc() {
const body = DocumentApp.getActiveDocument().getBody();
const paras = body.getParagraphs();
for (let i = 0; i < paras.length; i++) {
const text = paras[i].getText().trim();
if (!text) continue; // 跳過空段落
const prompt = '請把以下內容翻譯成' + TARGET_LANG +
',只回傳翻譯結果,不要加任何說明或引號:\n\n' + text;
const translated = askGemini(prompt);
// 在原段落後面插入一段翻譯
const idx = body.getChildIndex(paras[i]);
body.insertParagraph(idx + 1, translated)
.setForegroundColor('#1a73e8');
}
DocumentApp.getUi().alert('翻譯完成!翻譯內容已加在每段原文下方。');
}
存檔、重新整理文件、從選單執行,你就會看到藍色的翻譯文字出現在每段原文下方。如果你希望「另存成新文件」而不是附在原文下,可以把翻譯結果先收集成陣列,最後用 DocumentApp.create() 建立新文件再寫入。
看懂這個流程後,你會發現其他 AI 自動化幾乎都是同一套骨架:讀資料 → 組提示詞 → 呼叫 Gemini → 寫回結果。換個服務、換個提示詞,就能變出各種工具。
不用。Google AI Studio 提供免費額度,一般個人或小團隊測試、日常使用通常都在免費範圍內。你只要到 ai.google.dev 用 Google 帳號登入,就能免費產生一組 API 金鑰。當使用量很大、超過免費額度時,才需要綁定計費帳戶。建議先用免費額度把流程跑順,之後再依實際用量評估要不要升級。
因為 Google 文件一旦分享或轉交給同事,對方也能開啟 Apps Script 看到程式碼。金鑰若寫死在裡面就等於外流,別人可以拿去用、算在你的額度上。放在指令碼屬性(PropertiesService)則不會跟著程式碼被看到,安全很多。這是所有串接 API 的基本習慣,養成後每個專案都受用。
這是正常現象,不是錯誤。因為這支程式是你自己寫的、沒有經過 Google 商店審核,系統會提醒你確認。點「進階」再點「前往專案(不安全)」,然後「允許」即可。你是在授權自己寫的程式存取自己的文件,並沒有把權限給第三方,可以安心操作。
多半是因為在迴圈中一邊讀段落、一邊插入新段落,導致索引位移。本文的寫法用 getChildIndex 動態取得當前位置再插入,通常不會亂。如果你自己改過程式,記得插入後段落數量會變多,別再用最初記下的固定索引。穩妥做法是先把所有翻譯收集起來,最後再一次寫入。
可以,而且長文件很推薦這樣做。把 getParagraphs 換成 DocumentApp.getActiveDocument().getCursor() 或選取範圍相關的 API,就能只處理選取內容。這樣既能避免整份文件跑太久超時,也方便你分段校對。初學可以先用整份版本,熟悉後再加上「只翻選取」的功能。
這通常是提示詞不夠明確造成的。可以在提示詞裡明確寫「只回傳翻譯結果,不要加任何說明、引號或前後綴」,就像本文範例那樣。若偶爾還是多字,也可以在程式裡用 replace 去掉開頭結尾的引號。把要求寫得越清楚,模型越聽話,這是寫提示詞的通則。
翻譯時文字確實會送到 Google 的 Gemini API 處理,這點跟使用任何雲端翻譯服務一樣。對一般行銷、教學文件影響不大;但若是機密合約或個資,請先評估公司規範,或改用企業版方案。原則是:不要把高度敏感的資料丟進任何外部 API,這在所有 AI 工具都適用。
Apps Script 單次執行有約 6 分鐘上限,段落太多、逐段呼叫就可能超時。解法有三:一是分批選取執行;二是把多段合併成一次請求送給 Gemini,減少呼叫次數;三是用觸發器分次處理。初學建議先用短文件測試流程,等熟悉後再處理長文件並加上分批機制。
不用。把 TARGET_LANG 從一個字串改成陣列,例如 ['英文','日文'],再用迴圈跑兩輪,每個段落下方就會依序附上兩種語言。或者更進階,翻譯結果另存成不同文件。重點是主流程不變,只是多包一層迴圈,這也是讓工具「可擴充」的常見思路。
可以。把 Google 文件分享給同事,選單和程式會一起帶過去,他們打開就能用。但要注意兩點:一是每個人第一次用都要自行授權;二是金鑰額度是算在文件擁有者(也就是你)帳上。若團隊常用,建議改用共用雲端硬碟並統一管理金鑰,會更好維護。
做完這個翻譯工具,你已經掌握「讀資料 → 呼叫 Gemini → 寫回結果」的核心套路。接下來只要換服務、換提示詞,就能把更多重複工作自動化。若想帶著團隊系統化導入,歡迎進一步了解。
想讓團隊用 AI+自動化把重複工作交給流程?賴家榮提供 Workspace/GAS/Gemini 企業內訓與大學課程。
預約授課・免費諮詢本文為賴家榮 AI 教學中心原創教學內容;想讓團隊學會用 AI,歡迎看AI 課程或預約授課 →
代表圖片來源:圖片來源:Pexels