試算表雲端模式已啟用
Cloud Active
體驗活動規範事項
- • 為了保障大眾權益,當日限定體驗活動每人每日限預約 2 種項目。
- • 線上預約每梯次僅限 10 人,現場排隊每梯次 5 人。
- • 體驗時段:10:00 / 11:00 / 13:00 / 14:00(請準時到場)。
即時預約名額面板
最後更新: 讀取中...
10:00 時段
11:00 時段
13:00 時段
14:00 時段
填寫預約表單
目前尚未選取項目
請先點選上方您想體驗的「手作項目與時段」
恭喜您!預約登記成功
請妥善截圖保存本憑證,並至 Google 試算表核對。
RESERVATION TICKET
王小明
日期:6月12日
時段:10:00 - 11:00
手作:藍染體驗
NPUST-9821
本區塊包含來賓隱私聯絡資訊,請輸入管理帳密驗鎖以防外洩。
Google Sheets 連線設定
🛠️ 點此查看 3 分鐘設定教學與專用程式碼
【設定指南】:
1. 建立一個 Google 試算表。
2. 點選上方「擴充功能」 > 「Apps Script」。
3. 清除原本代碼,並貼上以下程式碼。
4. 點選「部署」 > 「新部署」,設定為「網頁應用程式」,並將「誰有權限存取」設為「所有人」(Anyone)。
5. 複製生成的 Web App 網址並貼入上方設定欄。
【Apps Script 程式碼】:
function doGet(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
if (sheet.getLastRow() === 0) {
sheet.appendRow(["姓名", "電話", "日期", "時段", "項目", "時間戳記", "憑證序號"]);
}
var data = [];
var rows = sheet.getDataRange().getDisplayValues();
for (var i = 1; i < rows.length; i++) {
var name = rows[i][0] ? rows[i][0].toString().trim() : "";
var phone = rows[i][1] ? rows[i][1].toString().trim() : "";
var date = rows[i][2] ? rows[i][2].toString().trim() : "";
var time = rows[i][3] ? rows[i][3].toString().trim() : "";
var activity = rows[i][4] ? rows[i][4].toString().trim() : "";
var timestamp = rows[i][5] ? rows[i][5].toString().trim() : "";
var code = rows[i][6] ? rows[i][6].toString().trim() : "";
if (name || phone || date || time || activity) {
data.push({
name: name,
phone: phone,
date: date,
time: time,
activity: activity,
timestamp: timestamp,
code: code
});
}
}
return ContentService.createTextOutput(JSON.stringify(data))
.setMimeType(ContentService.MimeType.JSON);
}
function doPost(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
if (sheet.getLastRow() === 0) {
sheet.appendRow(["姓名", "電話", "日期", "時段", "項目", "時間戳記", "憑證序號"]);
}
try {
var params = JSON.parse(e.postData.contents);
if (params.action === "add") {
sheet.appendRow([
params.name,
params.phone,
params.date,
params.time,
params.activity,
params.timestamp,
params.code
]);
return ContentService.createTextOutput(JSON.stringify({status: "success"}))
.setMimeType(ContentService.MimeType.JSON);
} else if (params.action === "delete") {
var rows = sheet.getDataRange().getValues();
for (var i = rows.length - 1; i >= 1; i--) {
if (rows[i][6] === params.code) {
sheet.deleteRow(i + 1);
break;
}
}
return ContentService.createTextOutput(JSON.stringify({status: "success"}))
.setMimeType(ContentService.MimeType.JSON);
} else if (params.action === "clear") {
sheet.clear();
sheet.appendRow(["姓名", "電話", "日期", "時段", "項目", "時間戳記", "憑證序號"]);
return ContentService.createTextOutput(JSON.stringify({status: "success"}))
.setMimeType(ContentService.MimeType.JSON);
}
} catch(error) {
return ContentService.createTextOutput(JSON.stringify({status: "error", message: error.toString()}))
.setMimeType(ContentService.MimeType.JSON);
}
}
大會報名名冊 (即時同步)
目前尚無預約資料