Tự động tạo link file Doc trong Google Sheet khi bạn tạo file trong một folder trên Google Drive

 Để tự động tạo link của một Google Doc trong một Google Sheet khi bạn tạo file trong một folder trên Google Drive, bạn có thể sử dụng Google Apps Script. Dưới đây là hướng dẫn chi tiết:

  1. Mở Google Sheets và tạo Script:

    • Mở Google Sheets mà bạn muốn lưu trữ link.
    • Chọn "Extensions" > "Apps Script".
  2. Viết Apps Script:

    • Trong cửa sổ Apps Script, sao chép và dán mã sau:
function onOpen() {
const ui = SpreadsheetApp.getUi(); ui.createMenu('Scripts') .addItem('Start Monitoring Folder', 'startMonitoringFolder') .addToUi(); } function startMonitoringFolder() { const folderId = 'YOUR_FOLDER_ID_HERE'; // Thay YOUR_FOLDER_ID_HERE bằng ID của folder bạn muốn theo dõi // Xóa tất cả các trigger hiện có const triggers = ScriptApp.getProjectTriggers(); for (const trigger of triggers) { ScriptApp.deleteTrigger(trigger); } // Tạo trigger mới ScriptApp.newTrigger('monitorFolder') .forSpreadsheet(SpreadsheetApp.getActive()) .onChange() .create(); // Gọi hàm monitorFolder để kiểm tra và thêm các file ngay lập tức monitorFolder(); } function monitorFolder() { const folderId = 'YOUR_FOLDER_ID_HERE'; // Thay YOUR_FOLDER_ID_HERE bằng ID của folder bạn muốn theo dõi const folder = DriveApp.getFolderById(folderId); const files = folder.getFiles(); const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const lastRow = sheet.getLastRow(); const existingFiles = lastRow > 1 ? sheet.getRange(2, 1, lastRow - 1, 1).getValues().flat() : []; const existingFileIds = new Set(existingFiles); const fileData = []; while (files.hasNext()) { const file = files.next(); if (!existingFileIds.has(file.getId())) { fileData.push([file.getId(), file.getName(), file.getUrl(), file.getDateCreated()]); } } // Sắp xếp các file theo thứ tự thời gian tạo fileData.sort((a, b) => a[3] - b[3]); // Thêm các file mới vào sheet if (fileData.length > 0) { sheet.getRange(lastRow + 1, 1, fileData.length, fileData[0].length).setValues(fileData); } }
  1. Cập nhật folder ID:

    • Thay YOUR_FOLDER_ID_HERE bằng ID của folder bạn muốn theo dõi trên Google Drive.
  2. Lưu và chạy Script:

    • Lưu script với tên mong muốn.
    • Trở lại Google Sheets và làm mới trang.
    • Chọn "Scripts" > "Start Monitoring Folder" để bắt đầu theo dõi folder.

Giải thích chi tiết

  • onOpen: Tạo menu để kích hoạt việc bắt đầu theo dõi.
  • startMonitoringFolder: Xóa tất cả các trigger hiện có trước khi tạo trigger mới. Sau đó tạo trigger mới để theo dõi khi có thay đổi trong Google Sheets và gọi hàm monitorFolder.
  • monitorFolder: Lấy danh sách các file trong folder và kiểm tra xem file đó đã tồn tại trong Google Sheets chưa dựa trên file ID. Nếu chưa tồn tại, thêm vào danh sách.
  • Sắp xếp các file: Sắp xếp các file theo thứ tự thời gian tạo.
  • Thêm các file mới vào sheet: Thêm các file mới vào Google Sheets, bao gồm ID file, tên file, URL và ngày tạo, nhưng chỉ khi có dữ liệu mới.

Script này đảm bảo rằng mỗi file chỉ được thêm một lần vào Google Sheets theo thứ tự thời gian tạo và không bị trùng lặp bằng cách kiểm tra kỹ càng sự tồn tại của file ID trước khi thêm vào, và chỉ thực hiện việc ghi khi có dữ liệu mới. Việc xóa các trigger cũ trước khi tạo trigger mới sẽ ngăn chặn lỗi "Tập lệnh này có quá nhiều kích hoạt".

0/Post a Comment/Comments

Ads1
Ads2