十多年前,我做了一個掃描槍(手持式條碼掃描器)excel版的「班級借還書系統」在網路上分享。這次,是我和AI合作的手機/平板版「班級借還書系統」,用了Google試算表、表單和Apps Script組合建構。
先看看成果
請遵循以下步驟來完成。此系統將允許您掃描條碼、記錄借還書情況、並跟蹤班級內每本書的狀態。
步驟一:建立Google試算表
- 創建試算表:
- 在Google試算表中創建一個新文件,並命名為「班級借還書系統」。
- 創建工作表:
- 建立以下兩個工作表:
- 借還記錄(
Log
):記錄每次借還書的詳細情況。 - 書籍目錄(
Books
):存儲所有書籍的條碼、書名、當前借閱人等信息。
- 借還記錄(
- 建立以下兩個工作表:
- 設置欄位:
- 在
Log
工作表中,設置以下欄位(從A欄開始):日期
(Date)學生姓名
(Student Name)條碼
(Barcode)書名
(Book Title)操作
(Action,填寫"借書"或"還書")
- 在
Books
工作表中,設置以下欄位(從A欄開始):條碼
(Barcode)書名
(Book Title)當前借閱人
(Current Borrower)借閱日期
(Borrow Date)
- 在
步驟二:創建Google表單
創建Google表單:
- 打開Google表單,創建一個新表單,並命名為「班級借還書掃描表單」。
設置表單問題:
- 添加兩個問題:
- 學生姓名(簡答,或下拉座號也可以啦)
- 條碼掃描(簡答)
- 在「條碼掃描」欄位,在此,我是去下載一個掃描條碼APP,直接掃ISBN條碼,再複製貼上在這個欄位中。
- 添加兩個問題:
表單設置:
- 打開表單設置,選擇「回應目的地」,將回應連接到您剛剛創建的Google試算表中,並選擇一個新的工作表來存儲回應。
步驟三:設置Google試算表和Apps Script
檢查試算表結構:
- 確保Google表單的回應已經正確保存到試算表中,該工作表應該包含「時間戳記」、「學生姓名」和「條碼掃描」三列。
設置Apps Script:
- 在與Google表單連接的試算表中,打開
擴展功能 > Apps Script
,並輸入以下代碼:
function onFormSubmit(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Log');
var booksSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Books');
var timestamp = e.values[0]; // 表單提交的時間戳
var studentName = e.values[1].trim().toLowerCase(); // 學生姓名 (去除空格並轉小寫)
var barcode = e.values[2].trim(); // 書籍條碼 (去除空格)
Logger.log("Received form submission: " + e.values);
// 檢查書籍是否存在於Books表中
var book = booksSheet.createTextFinder(barcode).findNext();
if (book) {
var bookTitle = booksSheet.getRange(book.getRow(), 2).getValue();
var currentBorrower = booksSheet.getRange(book.getRow(), 3).getValue();
// 確保currentBorrower是字符串類型並去除空格與轉換為小寫
if (currentBorrower) {
currentBorrower = currentBorrower.toString().trim().toLowerCase();
} else {
currentBorrower = ''; // 如果沒有借閱者,設置為空字串
}
if (!currentBorrower) {
// 如果書籍未被借出,則執行借書操作
sheet.appendRow([new Date(), studentName, barcode, bookTitle, '借書']);
booksSheet.getRange(book.getRow(), 3).setValue(studentName); // 設置借閱者
booksSheet.getRange(book.getRow(), 4).setValue(new Date()); // 設置借出日期
Logger.log("Borrowed book: " + bookTitle);
} else if (currentBorrower === studentName) {
// 如果書籍已被當前學生借出,則執行還書操作
sheet.appendRow([new Date(), studentName, barcode, bookTitle, '還書']);
booksSheet.getRange(book.getRow(), 3).setValue(''); // 清空借閱者
booksSheet.getRange(book.getRow(), 4).setValue(''); // 清空借出日期
Logger.log("Returned book: " + bookTitle);
} else {
// 如果書籍已被其他學生借出,提示錯誤或其他處理
sheet.appendRow([new Date(), studentName, barcode, bookTitle, '還書失敗 - 書籍已被其他學生借出']);
Logger.log("Return failed - Book borrowed by another student: " + bookTitle);
}
} else {
// 如果條碼不存在於Books表中,處理異常情況
sheet.appendRow([new Date(), studentName, barcode, '條碼不存在', '錯誤']);
Logger.log("Barcode not found: " + barcode);
}
}
3.設置觸發器:
- 在Apps Script編輯器中,點擊左側的
觸發器
圖標,添加一個觸發器,設置onFormSubmit
函數在「表單提交時」運行。這樣每次表單提交時,系統會自動處理借書或還書邏輯。
- 在Apps Script編輯器中,點擊左側的
步驟四:測試
測試流程:
- 打開表單,使用平板或手機攝像頭掃描條碼,複製貼上Google表單,並檢查試算表中的數據是否正確更新。
步驟五:使用和分享
分享表單:
- 可以將表單分享給學生,讓他們在借還書時使用平板或手機掃描條碼。
管理借還書流程:
- 所有的借還書記錄會自動保存到Google試算表中,您可以隨時查看和管理班級書籍的借還情況。
重要的眉角:
1.如何快速建立圖書資料?
用[我的圖書館]app:掃ISBN條碼獲取圖書資料再貼到Google試算表上,但實驗結果:新書很快,但舊書不容易找到圖書資料
2.我用什麼條碼掃描器app?
用[Barcode Scanner[]
留言
張貼留言