Automation
Google Workspace+GAS 自動化零基礎入門
用 Google Apps Script 把 Gmail、雲端硬碟、表單、試算表串成自動流程。賴家榮零基礎入門:看懂工具、拆解流程、做出第一個自動化。附完整簡報下載。
閱讀知識
試算表裡有數據,主管要的是一份看得懂的 Word 式報告。這篇要教你用 Apps Script 把 Sheets 的資料讀出來,交給 Gemini 寫成完整報告,再用 DocumentApp 排成一份 Google 文件,數據到報告一次搞定。
這篇把前面幾篇的技巧合起來:一邊讀 Sheets、一邊寫 Docs,中間由 Gemini 把數字變成敘述。核心仍是 askGemini,主流程負責串接試算表與文件兩個服務。
數據和報告之間,隔著一段最花時間的翻譯工作:把表格裡的數字變成一段段有邏輯的文字。這件事重複又耗神,卻又非做不可。交給 Gemini,它能讀懂表格、抓出重點、寫成通順的段落,替你完成這段翻譯。
更棒的是產出的是正式文件而非純文字。用 DocumentApp 排好標題與段落,出來就是一份可以直接交出去的 Google 文件,能分享、共編、列印成 PDF。從試算表到成品報告全自動,你只要負責審閱與微調。
確認試算表資料排列整齊:第一列是欄位標題,下面每列一筆。整齊的資料 Gemini 讀起來更準。同時想好你要的報告長什麼樣:要哪些章節、給誰看,這會影響你寫的提示。
動作在有數據的 Google 試算表點「擴充功能」→「Apps Script」,用綁定專案最方便讀取資料。
常見地雷用綁定專案才能直接用 getActiveSpreadsheet 抓到這份表;獨立專案則要用 openById 指定 ID。
動作在「專案設定」的「指令碼屬性」新增 GEMINI_API_KEY,貼上金鑰後儲存。
常見地雷屬性名稱要跟程式讀取的完全一致,差一個字母都會抓不到。
動作在程式碼區貼上下方第一段 askGemini。
常見地雷這段跟其他篇相同,模型名稱別改錯,否則會回傳錯誤。
動作貼上第二段主流程,它會讀取試算表、請 Gemini 撰寫報告、再用 DocumentApp 建文件排版。
常見地雷把資料工作表名稱改成你自己的;資料範圍太大時先只讀需要的部分。
動作在提示裡調整你要的章節與語氣,例如「摘要、重點分析、建議」三段,對象是主管。
常見地雷沒指定章節時 AI 會自由發揮,格式可能不穩;把結構框清楚結果才整齊。
動作選擇 buildDocReport 按「執行」,第一次會要求授權存取試算表、雲端硬碟與外部網路,按允許。
常見地雷授權涉及多項服務,第一次視窗步驟較多屬正常,跟著指示按到底即可。
動作執行完,紀錄會印出文件網址,點開確認章節與段落是否排好、數字有沒有寫對。
常見地雷AI 偶爾會誤讀或重述錯數字,正式送出前務必人工核對關鍵數據。
下面第一段是共用的 askGemini;第二段主流程先用 SpreadsheetApp 把資料轉成文字表格,交給 Gemini 撰寫報告,再用 DocumentApp 依標題與段落排版成文件。
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 buildDocReport() {
// 讀取試算表資料
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('數據');
const values = sheet.getDataRange().getValues();
let table = '';
values.forEach(function(row) {
table += row.join('\t') + '\n';
});
// 請 Gemini 依資料撰寫報告
const prompt = '你是資料報告撰稿人。下面是一份表格資料,第一列是欄位名稱。' +
'請用繁體中文寫一份給主管看的報告,包含三個章節:整體摘要、重點分析、行動建議。' +
'每個章節標題用「## 標題」獨立一行,內文用一般段落,語氣專業易懂、依數據說話。\n\n' + table;
const content = askGemini(prompt);
// 建立文件並排版
const title = '數據報告 ' + Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'yyyy-MM-dd');
const doc = DocumentApp.create(title);
const body = doc.getBody();
body.appendParagraph(title).setHeading(DocumentApp.ParagraphHeading.TITLE);
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());
}
這個流程串起了 Sheets 與 Docs 兩個服務:左邊讀資料、右邊寫文件,中間由 AI 負責把數字說成人話。搞懂這條線,你就能把任何一份表格自動變成報告。
用 DocumentApp.create 建立的文件會存到執行程式的帳號的雲端硬碟根目錄,程式跑完會在紀錄印出網址,點進去就能打開。如果想收進特定資料夾,可以搭配 DriveApp 把檔案搬過去,或先建好資料夾再把文件加入,這樣多份報告就能自動分門別類收好。
AI 擅長把數字整理成敘述,但它不是計算機,遇到複雜運算或大量數字時偶爾會誤述。最保險的做法是把關鍵計算交給試算表公式先算好,把正確結果連同表格一起給 AI,讓它只負責描述。正式送出報告前,務必人工核對重要數字,這一步不能省。
資料非常多時,把整份表格塞進提示可能會太長,甚至超過模型能處理的範圍。建議先在程式裡做摘要,例如只保留關鍵欄位、或先算出統計數字,再把精簡後的內容交給 Gemini。這樣既避免逾時,也讓 AI 更容易抓到重點,寫出的報告反而更聚焦。
程式是靠每行開頭有沒有 ## 來判斷是不是標題,如果 Gemini 沒照約定標示,整段就會被當成內文。解法是把提示裡的格式要求寫清楚,明確要求每個章節標題用 ## 開頭並獨立成一行。要求講得越具體,AI 越會照做,排版就會正確。
可以,而且很簡單。章節是寫在提示裡的,這篇用的是摘要、分析、建議三段,你想換成任何結構都行,例如加上風險評估或下期展望。只要在提示裡列出你要的章節名稱和順序,Gemini 就會照著寫。程式的排版邏輯不用改,換提示即可。
可以。做法跟一般排程一樣,在編輯器左側的觸發條件新增一個時間驅動的觸發器,函式選 buildDocReport,設定成每月或每週執行。之後它就會定時讀取最新資料、生成報告、存進雲端硬碟,完全不用你動手。搭配自動寄信,還能把報告網址直接送到相關同事信箱。
可以。取得文件之後,用 doc.getUrl() 拿到網址,再搭配 MailApp 寄信給指定收件人,就能自動把報告送出。如果要對方直接看到內容,也可以把文件匯出成 PDF 當附件寄出。這樣從讀資料、寫報告到寄送,整條流程都自動化,省下不少往返的功夫。
先檢查程式裡指定的工作表名稱跟實際名稱是否完全相同,包含有沒有多餘空格。這篇用 getSheetByName 指定名為「數據」的工作表,如果你的表叫別的名字就要跟著改。另外確認資料範圍正確,若第一列是標題就別把它當資料處理,避免報告內容出現欄位名混進去。
不會完全一樣。AI 的措辭本來就有些變化,同一份資料跑兩次,用字和舉例可能略有不同,但主要結論會一致。如果你需要更穩定的版本,就把提示寫得更嚴謹,把章節、字數、語氣都框清楚。這樣即使重跑,格式與重點也會維持一致,方便定期產出。
不是。只要是試算表裡的資料,都能用類似方式轉成文件,例如問卷結果整理成分析報告、專案進度整理成週報、名單整理成摘要清單。你只要換掉資料來源和提示內容,告訴 Gemini 要寫成什麼樣的報告即可。這篇用數據當例子,換個情境改改提示就能重複使用。
當試算表能自己長出報告,數據回顧就從苦差事變成一鍵完成。如果你想把這條 Sheets 到 Docs 的自動化流程導入團隊日常,讓專業講師帶著規劃會更快上手。
想讓團隊用 AI+自動化把重複工作交給流程?賴家榮提供 Workspace/GAS/Gemini 企業內訓與大學課程。
預約授課・免費諮詢本文為賴家榮 AI 教學中心原創教學內容;想讓團隊學會用 AI,歡迎看AI 課程或預約授課 →
代表圖片來源:圖片來源:Pexels