我的應用情境
我們最近辦了學生的年會,學生會透過表單繳交資料,資料上傳到雲端硬碟。接下來我們要處理的是
- 將學生分組
- 在學生分組資料中
- 做排序 依據校名、依據姓名
- 根據排序的資料找出重複的資料
- 再篩選一次重複資料(因為Excel的篩選機制可能會漏掉資料)
- 篩選完後,我們將試算表提供給評審(不過要記得先幫評審開資料夾瀏覽權限)
- 提供學生報名的檔案給評審(如果評審不想一個一個點的話)
但是,要怎麼做啊!以前從來沒有處理過。於是,我把我的需求跟AI許願,他給了我一些工作方法,我當然柿子挑軟的吃啊!所以我選擇使用google 試算表中支援的擴充功能-Apps Script
步驟也很簡單
步驟:
- 開啟你的 Google 試算表
- 點選
擴充功能 → Apps Script
- 貼上以下程式碼:
接著他也給了我程式碼
function downloadFilesFromGColumn() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const urls = sheet.getRange("G2:G15").getValues(); // 你的連結位於 G 欄
const folder = DriveApp.createFolder("DownloadedFiles_" + new Date().toISOString());
urls.forEach(row => {
const url = row[0];
if (url && url.includes("drive.google.com")) {
const fileIdMatch = url.match(/[-\w]{25,}/);
if (fileIdMatch) {
const fileId = fileIdMatch[0];
try {
const file = DriveApp.getFileById(fileId);
folder.createFile(file.getBlob()).setName(file.getName());
} catch (e) {
Logger.log("❌ 錯誤下載:" + url + "(可能沒權限或非檔案連結)");
}
}
}
});
Logger.log("✅ 所有檔案已下載到 Google 雲端硬碟中的資料夾:" + folder.getName());
}
重點是這一行(const urls = sheet.getRange("G2:G15").getValues(); // 你的連結位於 G 欄)
我得知道我要抓的檔案連結在哪一欄,從哪個欄位到個欄位(G2:G15)
然後執行這隻程式,並且提供權限(他要能夠增刪你的雲端硬碟資料),接著就等它在你的雲端硬碟建立資料夾,並且將你要的資料抓過去那個資料夾放好。等一下後,再下載那個資料夾就好囉!
這個很適合辦活動的人使用