Slide 範本
gs Code
把 [課程結業證書範本 Slide] 複製至新位置,該筆記是以根目錄內的日期資料夾 (EX:2026-02-05) 去,並把學員資料透過 replaceAllText() 更新至 Slide {{文字說明}}
{{文字說明}} 基本上在 Slide 內是唯一的識別文字就行,前後有沒有符號包起來不是重點,但既然官方教學都使用 {{}} 包起來,就延續該風格囉,Slide 內有三個文字說明,分別為 {{學員姓名}}、{{課程名稱}}、{{日期}}
replaceAllText(findText, replaceText) 函式
- findText:以該筆記為例,是指 {{文字說明}}
- replaceText:取代 {{文字說明}} 的內容
function SlideMergeData() {
const presentation = SlidesApp.getActivePresentation();
const timeZone = Session.getScriptTimeZone();
const dateString = Utilities.formatDate(new Date(), timeZone, "yyyy-MM-dd");
// 設定根 FolderID
const rootFolderId = GetFolderID();
const rootFolder = DriveApp.getFolderById(rootFolderId);
// 檢查並刪除同名的日期資料夾
const existingFolders = rootFolder.getFoldersByName(dateString);
while (existingFolders.hasNext()) {
const oldFolder = existingFolders.next();
oldFolder.setTrashed(true); // 將舊資料夾移至垃圾桶
}
// 建立日期資料夾
const dateFolder = rootFolder.createFolder(dateString);
// 複製範本 Slide 來使用
const templateFile = DriveApp.getFileById(presentation.getId());
const studentName = "王小強";
const copyFile = templateFile.makeCopy(studentName, dateFolder);
// 開啟新 Slide 並進行文字替換
const newPresentation = SlidesApp.openById(copyFile.getId());
newPresentation.replaceAllText('{{學員姓名}}', studentName);
newPresentation.replaceAllText('{{課程名稱}}', "Google Apps Script");
newPresentation.replaceAllText('{{日期}}', dateString);
newPresentation.saveAndClose();
}
執行結果
該筆記只有使用 replaceAllText() 取代文字,還有兩個主題分別為
- replaceAllShapesWithImage 取代圖片
- BatchUpdate:有效能考量使用,需要開啟 Google Drive API 服務
目前沒有使用到,單純紀錄


沒有留言:
張貼留言