什麼是 Google Apps Script?
- GAS 是一個 Google 推出的開發平台,可以透過撰寫 JavaScript 來達到自動化、爬蟲、資料處理的過程!不需要下載環境,就可以直接打 code 的免費程式語言
- GAS 可以整合與連結各項常用的 Google 產品,像是 Google Sheet (試算表)、Google Doc (Google 文件)、Gmail、Google Form (Google 表單)、Google Drive (雲端硬碟) 等等
- 自動化、爬蟲、資料處理的過程包含:小到資料格式處理,大至流程自動化、爬蟲等等各種目的!
- 如果有跟著我一起學習 Google Sheet、Big Query (SQL) 的大家,GAS 有很多實際的應用場景,非常推薦想要學習數據分析 + 自動化的大家可以碰!
不寫程式就可以下載的擴充功能!爬蟲、自動寄信功能等等都有!
- 如果不想自己手寫 GAS,不想學習如何雕刻出一項功能,其實也有許多別人寫好的套件,可以直接安裝在 Google Chrome、Google Sheet 之中
- 如何下載擴充功能?
- 任一 Google Sheet → 上排 Menu 中的”擴充功能” → 外掛程式 → 取得外掛程式 或直接搜尋 Google Workspace Marketplace
收據訂單自動化 (含範本下載) 完整流程實作公開
第一步:收據及訂單資訊管理:Google Sheet 管理訂單資訊
- 首先,我們可以先把訂貨單範本寫好
- 其中會包含訂貨單中會出現的所有資訊 (欄位),例如:付款人姓名、付款人電話、訂購日期、訂購項目、單價、數量、總價、銷售方姓名、銷售方電話、銷售方統編
為什麼要用 Google Sheet 管理收據及訂貨單資訊?
- 方便統整貨品售出資訊、銷售數據、營收報表!
第二步:設計收據及訂貨單範本:使用 Google Doc 設計範本
- 設計收據的樣式、訂貨單的樣式
- 將第一步中的資訊 (欄位) 都設計到 Google Doc 的範本中
第三步:開啟 GAS:設計自動化流程
接下來,我會詳細講解一下怎麼用 Google Apps Script 生成收據!流程真的很簡單~
- 步驟 1:獲取連結
- 獲取 Google Sheet、Google Doc 和 Google Drive 的文件 ID (ID 在連結上)
- 步驟 2:爬數據,並且生成收據
- 打開 Google Sheet,爬所有的數據範圍
- 對於每一行數據,執行以下操作:
- 複製收據範本 (Google Doc)
- 替換文件內容,變成相應數據,比如說把付款人姓名變成 Lisa
- 儲存文件
- 步驟 3:生成 PDF 並移動至收據資料夾
- 將每個收據範本 (Google Doc) 轉換為 PDF 格式
- 更改 PDF 文件名稱:改成收據 + 姓名
- 移動到我指定的收據資料夾
- 步驟 4:刪除 Google Docs 副本
- 刪掉剛剛中間複製的收據範本 (Google Doc),因為我們已經生成 PDF 了!那就不需要這個範本啦~
GAS code 範本:將資料自動生成收據或是訂貨單
function generateReceipt() {
var sheetId = '請放入你的 sheet id'; // Google Sheet 的 ID
var templateFileId = '請放入你的收據 doc id'; // 收據範本的 Google Docs ID
var folderId = '請放入你的 收據資料夾 id'; // 存放生成文件的 Google Drive 資料夾 ID
var sheet = SpreadsheetApp.openById(sheetId);
var data = sheet.getActiveSheet().getRange('A2:K').getValues(); // 假設數據在 A2:K 範圍內
for (var i = 0; i < data.length; i++) {
var receiptData = data[i];
var paymentPersonName = receiptData[0]; // 付款人姓名在第一個位置
// 複製範本文件
var templateFile = DriveApp.getFileById(templateFileId);
var newDocFile = templateFile.makeCopy(); // 複製範本文件
var newDoc = DocumentApp.openById(newDocFile.getId()); // 打開複製的文件
var body = newDoc.getBody();
// 替換標記為對應的數據
var placeholders = ['付款人姓名', '付款人電話', '訂購日期', '訂購項目', '單價', '數量', '總價', '銷售方姓名', '銷售方電話', '銷售方統編'];
for (var j = 0; j < placeholders.length; j++) {
var field = '{{' + placeholders[j] + '}}';
var value = receiptData[j];
body.replaceText(field, value);
}
// 儲存更新後的收據文件
newDoc.saveAndClose();
// 將文件轉換為 PDF 格式
var pdfContentBlob = DriveApp.getFileById(newDocFile.getId()).getAs('application/pdf');
var pdfFileName = '收據' + paymentPersonName + '.pdf';
var pdfFile = DriveApp.createFile(pdfContentBlob).setName(pdfFileName);
// 移動 PDF 文件到指定資料夾
var folder = DriveApp.getFolderById(folderId);
pdfFile.moveTo(folder);
// 刪除 Google Docs 副本
DriveApp.getFileById(newDocFile.getId()).setTrashed(true);
}
}
成果總整理:2 步驟完成自動生成收據及訂貨單!!!
- 我只要輸入資訊到 Google Sheet 中
- 只要點擊執行 GAS,他就會幫我自動生成每一筆收據 (訂貨單)
總結:用 ChatGPT 學習所有程式語言,開始實作專案!
今天的這個小小的實作專案:收據訂貨單流程自動化,是我搭配 ChatGPT 實作做出來的!如果你想看更多跟 ChatGPT 相關的專案,可以看看這裡~:
- 真的可以用 ChatGPT 做數據分析?業界數據分析師實測結果分享!
- 用 ChatGPT Plus 做 Kaggle 專案:ChatGPT Plus 大進化:一條龍數據分析實戰!5 分鐘解 Kaggle 題目示範
- 如何用數據分析預測庫存或業績?Python 線性回歸模型真實案例分享!(含練習包下載)
不論是數據分析、流程自動化,都是數據分析師可能常常碰到的場景,只要你懂了數據分析的底層邏輯、解決問題的框架,很快就可以想出並且實作出很多便利的、實用的場景!
Pingback: [數據分析#0] 數據分析文章導覽 (累計 71 篇!持續更新中) - Lisa Wu 理紗豆苗工作室