Automation
Google Workspace+GAS 自動化零基礎入門
用 Google Apps Script 把 Gmail、雲端硬碟、表單、試算表串成自動流程。賴家榮零基礎入門:看懂工具、拆解流程、做出第一個自動化。附完整簡報下載。
閱讀知識
寫提案最痛苦的往往是第一頁空白。這篇要教你用 Apps Script 串接 Gemini,只要輸入幾個重點,程式就會請 AI 生成完整初稿,並用 DocumentApp 自動排好標題、段落,產出一份可以直接編修的 Google 文件。
核心依然是 askGemini 這個小函式負責問 AI;主流程用 DocumentApp 開新文件、把 Gemini 回來的內容一段段寫進去。有了初稿當底,你只要負責潤飾與確認,效率差很多。
從零寫提案要同時想架構、想措辭、還要顧格式,負擔很重。先讓 AI 依你的重點生出一份有頭有尾的初稿,你就從「無中生有」變成「修改既有」,心理門檻低很多,動筆也快很多。
而且用 DocumentApp 直接排版,省去複製貼上再手動加標題的功夫。程式一次把標題、章節、內文都排好,產出的就是一份格式整齊的 Google 文件,可以馬上分享、共編或列印。從輸入重點到拿到文件,全部一氣呵成。
提案初稿好不好,關鍵在你給的重點清不清楚。先把要提案的主題、對象、想達成的目標列出來,等一下把它們塞進提示,Gemini 就能依這些線索生成貼近需求的內容。
動作到 script.google.com 點「新專案」,因為這篇是要新建文件,用獨立專案最方便。
常見地雷這篇不用綁在某份文件上,用獨立專案即可;程式會自己建立新的 Google 文件。
動作在「專案設定」的「指令碼屬性」新增 GEMINI_API_KEY,貼上金鑰後儲存。
常見地雷屬性名稱要跟程式裡讀取的完全一致,大小寫底線都不能差。
動作在程式碼區貼上下方第一段 askGemini。
常見地雷這段是共用的,若模型名稱打錯會拿到 404,貼上後別亂改網址。
動作貼上第二段主流程,它會把你的重點組成提示、請 Gemini 寫初稿、再用 DocumentApp 建文件排版。
常見地雷把程式裡的重點變數換成你自己的提案內容,或改成從試算表、表單讀入。
動作在 createProposal 上方的 topic、audience、goal 等變數填入實際內容,例如主題、對象、目標。
常見地雷重點寫得越具體,AI 生出的初稿越貼題;只寫一兩個字容易得到空泛內容。
動作選擇 createProposal 按「執行」,第一次會要求授權存取雲端硬碟與外部網路,按允許。
常見地雷授權時看到警告屬正常,選進階再繼續即可,這是自建程式的常見提示。
動作執行完,程式會在紀錄印出文件網址,點進去看初稿,確認標題與段落都排好了。
常見地雷如果內容跑成一整坨沒分段,多半是 Gemini 沒依格式回,回頭把提示的格式要求寫得更明確。
下面第一段是共用的 askGemini;第二段主流程用 DocumentApp 建立新文件,把 Gemini 回傳的內容依標題與段落寫進去。程式會請 AI 用特定符號標示標題,方便我們判斷該套用哪種樣式。
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();
}
function createProposal() {
// 這裡填入你的提案重點
const topic = '導入 AI 客服系統';
const audience = '公司管理層';
const goal = '降低客服人力成本、提升回覆速度';
const prompt = '你是專業提案撰稿人。請用繁體中文寫一份提案初稿,主題是「' + topic + '」,' +
'對象是' + audience + ',目標是' + goal + '。' +
'結構包含:背景與問題、解決方案、預期效益、執行步驟、預算概估。' +
'每個章節標題請用「## 標題」開頭獨立一行,章節內文用一般段落。內容具體可行,不要空話。';
const content = askGemini(prompt);
// 建立新文件並取得內文
const doc = DocumentApp.create('提案初稿:' + topic);
const body = doc.getBody();
body.appendParagraph(topic).setHeading(DocumentApp.ParagraphHeading.TITLE);
// 依 Gemini 標的 ## 判斷標題,其餘當內文段落
content.split('\n').forEach(function(line) {
const text = line.trim();
if (text === '') return;
if (text.indexOf('##') === 0) {
body.appendParagraph(text.replace(/^##\s*/, ''))
.setHeading(DocumentApp.ParagraphHeading.HEADING1);
} else {
body.appendParagraph(text);
}
});
doc.saveAndClose();
Logger.log('文件已建立:' + doc.getUrl());
}
這個流程和程式碼一一對應:先給重點、請 AI 寫、再逐行排進文件。理解逐行判斷標題這一步之後,你就能自訂更複雜的排版,例如加上項目符號或分頁。
用 DocumentApp.create 建立的文件,會存到執行這支程式的 Google 帳號的雲端硬碟根目錄。程式跑完會在紀錄印出文件網址,點進去就能打開。如果想放到特定資料夾,可以搭配 DriveApp 把檔案移過去,或先建立資料夾再把文件搬進該資料夾,管理起來更整齊。
這通常是 Gemini 沒有照約定用 ## 標示標題。程式是靠每行開頭有沒有 ## 來判斷要不要套標題樣式,AI 一旦沒照做,程式就會把整行都當成內文。解法是把提示裡的格式要求寫得更清楚,明確要求每個章節標題都要用 ## 開頭並獨立一行。
可以,但要多一個步驟。DocumentApp 建立的文件預設在雲端硬碟根目錄,你可以用 DriveApp 取得該檔案,再用 moveTo 把它搬到指定資料夾。或者先用 DriveApp 建好或找到資料夾,取得資料夾物件後把文件加進去。這樣批次生成的提案就能自動分類收好。
初稿品質主要看提示。把對象、目標、要涵蓋的章節寫得越具體,AI 生出的內容越貼題。你也可以在提示裡設定語氣,例如「正式、對管理層」,或附上一段你們公司過往提案的風格範例讓它模仿。記得 AI 產出的是底稿,最後仍要由你潤飾與確認事實。
不會完全一樣。AI 的回答本來就帶有一點變化,同樣的重點跑兩次,措辭和舉例可能略有不同。這其實是好事,你可以多跑幾次,從幾份初稿裡挑最合適的來改。如果需要比較穩定的結果,就把提示寫得更嚴謹,把章節與要點都框死,變化就會變小。
可以。把 topic、audience、goal 這些變數改成從試算表逐列讀取,用迴圈跑過每一列,就能一次生成多份提案,每份存成獨立文件。不過一次跑太多份可能會超過單次執行時間,或碰到 AI 的請求限制,建議分批處理,並在每份之間稍作間隔。
可以。取得文件之後,能用 DriveApp 的分享設定加入協作者的電子郵件,設定成可檢視或可編輯。也可以搭配 MailApp,把 doc.getUrl() 取得的網址寄給相關同事。這樣從生成到通知就完全自動化,對方一收到信就能點開初稿開始編修。
不會。金鑰是存在指令碼屬性,程式用 PropertiesService 讀取,只在呼叫 Gemini 時暫時使用,完全不會出現在生成的文件內容裡,也不會寫進任何儲存格或段落。只要你不自己把金鑰打進提示文字,它就一直安全地待在屬性服務裡。
可以,做法是把現有內容連同修改指示一起交給 Gemini。例如讀出文件目前的段落,加上「請把預算章節寫得更詳細」這類指令,請 AI 回傳修改後版本,再更新文件。這樣就能做出反覆潤稿的流程,不過每次修改都會消耗額度,改幾輪滿意即可。
不是。同樣的做法可以生成各種文件,例如會議記錄、產品說明、教學講義、活動企劃。你只要換掉提示,告訴 Gemini 要寫什麼、包含哪些章節,再用 DocumentApp 排版即可。這篇用提案當例子,把主題和結構換一換,就能套用到你需要的任何文件類型。
從空白頁到一份成形初稿,只要幾秒。如果你想把這類文件自動化擴大到整個團隊的日常,讓專業講師規劃完整流程與訓練會更有效率。
想讓團隊用 AI+自動化把重複工作交給流程?賴家榮提供 Workspace/GAS/Gemini 企業內訓與大學課程。
預約授課・免費諮詢本文為賴家榮 AI 教學中心原創教學內容;想讓團隊學會用 AI,歡迎看AI 課程或預約授課 →
代表圖片來源:圖片來源:Pexels