跳到主要內容

DIY~用手機或平板掃碼的簡易班級借還書系統

 十多年前,我做了一個掃描槍(手持式條碼掃描器)excel版的「班級借還書系統」在網路上分享。這次,是我和AI合作的手機/平板版「班級借還書系統」,用了Google試算表、表單和Apps Script組合建構。

先看看成果


請遵循以下步驟來完成。此系統將允許您掃描條碼、記錄借還書情況、並跟蹤班級內每本書的狀態。


步驟一:建立Google試算表

  1. 創建試算表:
    • 在Google試算表中創建一個新文件,並命名為「班級借還書系統」。
  2. 創建工作表:
    • 建立以下兩個工作表:
      • 借還記錄Log):記錄每次借還書的詳細情況。
      • 書籍目錄Books):存儲所有書籍的條碼、書名、當前借閱人等信息。
  3. 設置欄位:
    • Log工作表中,設置以下欄位(從A欄開始):
      • 日期(Date)
      • 學生姓名(Student Name)
      • 條碼(Barcode)
      • 書名(Book Title)
      • 操作(Action,填寫"借書"或"還書")
    • Books工作表中,設置以下欄位(從A欄開始):
      • 條碼(Barcode)
      • 書名(Book Title)
      • 當前借閱人(Current Borrower)
      • 借閱日期(Borrow Date)

步驟二:創建Google表單

  1. 創建Google表單:

    • 打開Google表單,創建一個新表單,並命名為「班級借還書掃描表單」。
  2. 設置表單問題:

    • 添加兩個問題:
      1. 學生姓名(簡答,或下拉座號也可以啦)
      2. 條碼掃描(簡答)
    • 在「條碼掃描」欄位,在此,我是去下載一個掃描條碼APP,直接掃ISBN條碼,再複製貼上在這個欄位中。
  3. 表單設置:

    • 打開表單設置,選擇「回應目的地」,將回應連接到您剛剛創建的Google試算表中,並選擇一個新的工作表來存儲回應。

步驟三:設置Google試算表和Apps Script

  1. 檢查試算表結構:

    • 確保Google表單的回應已經正確保存到試算表中,該工作表應該包含「時間戳記」、「學生姓名」和「條碼掃描」三列。
  2. 設置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);
  }
}

  1. 3.設置觸發器:

    • 在Apps Script編輯器中,點擊左側的觸發器圖標,添加一個觸發器,設置onFormSubmit函數在「表單提交時」運行。這樣每次表單提交時,系統會自動處理借書或還書邏輯。

步驟四:測試

  1. 測試流程:

    • 打開表單,使用平板或手機攝像頭掃描條碼,複製貼上Google表單,並檢查試算表中的數據是否正確更新。

步驟五:使用和分享

  1. 分享表單:

    • 可以將表單分享給學生,讓他們在借還書時使用平板或手機掃描條碼。
  2. 管理借還書流程:

    • 所有的借還書記錄會自動保存到Google試算表中,您可以隨時查看和管理班級書籍的借還情況。


重要的眉角:

1.如何快速建立圖書資料?

用[我的圖書館]app:掃ISBN條碼獲取圖書資料再貼到Google試算表上,但實驗結果:新書很快,但舊書不容易找到圖書資料




2.我用什麼條碼掃描器app?

用[Barcode Scanner[]


如果你找到更好用的app或有什麼建議的,歡迎留言回應與我分享

留言

這個網誌中的熱門文章

Google文件使用標楷體,匯出PDF時卻變成正黑體的解決方案

最近花了一個月打了一篇26頁的Google文件,使用的是「標楷體」,下載時選擇PDF格式後卻變成「正黑體」,而且格式整個跑掉,想到要重新編輯就欲哭無淚,怎麼辦?

教師神器~直覺易用的家庭聯絡簿標籤產生器(類似A4文件合併列印功能)

對於國小老師來說,常常需要列印剪貼一些標籤到聯絡簿,但有些人不熟悉word合併列印標籤,我和ai合作這個網頁小工具,應該讓老師感到超簡單

[免費]如何將圖片或 pdf 檔的文字擷取(辨識)出來,轉成word檔...

「圖片轉文字」一直是很多人困擾的問題,尤其是有大量轉檔辨識需求的人(如掃描書籍文件),所以我的xuite部落格發燒文章前兩名就是這類...