Hướng dẫn how to fill google form automatically from excel - cách điền google form tự động từ excel

Gần đây, trường đại học tôi học tại đã có một lễ hội kỹ thuật có nhiều sự kiện kỹ thuật. Vào cuối lễ hội kỹ thuật, chúng tôi đã phải gửi một mẫu phản hồi để ghi lại kinh nghiệm và đề xuất của họ về các sự kiện khác nhau đã được thực hiện. Trong quá trình đăng ký sự kiện, chúng tôi đã thu thập dữ liệu về người tham dự, các sự kiện và các diễn giả được lưu trữ trong Google Sheets. Để không đặt câu hỏi tương tự hai lần và sử dụng lại dữ liệu đã được thu thập, tôi quyết định tạo biểu mẫu phản hồi bằng tập lệnh Google Apps để tự động phát các tùy chọn trong biểu mẫu Google bằng cách sử dụng tờ Google có chứa dữ liệu của sinh viên.


Bước1: Mẫu mẫu Google Mẫu

Biểu mẫu Google chứa các câu hỏi sau:

  1. Ten cua hoc sinh
  2. ID của học sinh
  3. Sự kiện mà anh ấy/cô ấy đã tham dự
  4. Phản hồi về sự kiện

Bước 2: Thêm câu hỏi vào tờ Google

Bây giờ chúng tôi đã thêm các câu hỏi vào biểu mẫu Google, đã đến lúc thêm các câu hỏi vào tờ Google. Ở đây bạn cần đảm bảo rằng bạn sao chép cùng một câu hỏi.

Nếu bạn thích làm việc với tờ Google, bấm vào đây. Sau khi thêm các câu hỏi, bạn cần thêm các tùy chọn trong mỗi câu hỏi như được hiển thị bên dưới.

Thêm mẹo về tập lệnh ứng dụng Google tại đây

Bước3: Viết tập lệnh tự động hóa

Trong khi bạn đang ở trong trang tính, hãy khởi chạy Trình chỉnh sửa tập lệnh ứng dụng.

Để làm điều đó làm theo các bước sau:

[1] Nhấp vào nút Công cụ và nhấp vào Trình chỉnh sửa tập lệnh.Tools button and click on the Script Editor.

[2] Điều này đưa lên trình chỉnh sửa tập lệnh.

Chúng tôi đã đạt được trình soạn thảo kịch bản. Hãy để mã mã.

const sheet_ID = "1zNrOZZbHIrO6L15ntStoBkBHfkAe01lpP3rGXwRFBp0";
const form_ID = "1avhXYR_BprUM3tg-Jy5IEVzQZfjBar-Jqezbxkc4dh8";
const data = SpreadsheetApp.openById[sheet_ID].getSheetByName["Sheet1"];
const form = FormApp.openById[form_ID];

function main[]{
    
    const startRowIndex = 1 
    const startColumnIndex = 1
    const amountOfRowsToUse = 1
    const lastColumn = data.getLastColumn[]
    const labels = data.getRange[startRowIndex, startColumnIndex, amountOfRowsToUse, lastColumn].getValues[][0];
    const startColIndex = 2
    const lastRowIndex = data.getLastRow[]-1
    const lastColumnIndex = 1
    labels.forEach[[label, i] => {
        const startRowIndex = i +1
        const options = data.getRange[startColIndex, startRowIndex, lastRowIndex, lastColumnIndex].getValues[]
        updateDropdownTitle[label,options]
}]


}


function updateDropdownTitle[title,values]{
    const items = form.getItems[];
    const titles = items.map[item => item.getTitle[]]
    const pos = titles.indexOf[title];
    const item = items[pos];
    const itemID = item.getId[];
    updateDropdown[itemID,values];
}

function updateDropdown[id,values]{
  const item = form.getItemById[id];
  item.asMultipleChoiceItem[].setChoiceValues[values];

}


const sheet_ID = "1zNrOZZbHIrO6L15ntStoBkBHfkAe01lpP3rGXwRFBp0";
const form_ID = "1avhXYR_BprUM3tg-Jy5IEVzQZfjBar-Jqezbxkc4dh8";
const data = SpreadsheetApp.openById[sheet_ID].getSheetByName["Sheet1"];
const form = FormApp.openById[form_ID];

function main[]{
    const startRowIndex = 1 
    const startColumnIndex = 1
    const amountOfRowsToUse = 1
    const lastColumn = data.getLastColumn[]
    const labels = data.getRange[startRowIndex,startColumnIndex,      amountOfRowsToUse, lastColumn].getValues[][0];
     
    const startColumnIndex = 2
    const lastRowIndex = data.getLastRow[]-1
    const lastColumnIndex = 1
    labels.forEach[[label, i] => {
        const startRowIndex = i +1
        const options = data.getRange[startColumnIndex, startRowIndex,    lastRowIndex, lastColumnIndex].getValues[]
    
    updateDropdownTitle[label,options]
}]


Ở đây, trước tiên chúng tôi đã khai báo ID Google và Google Form ID, tiếp theo là mở chúng bằng hàm OpenByid. Tiếp theo, chúng tôi sẽ tạo chức năng đầu tiên của chúng tôi, nơi chúng tôi sẽ nhận được các câu hỏi theo sau là các tùy chọn từ tờ Google. Để có được các câu hỏi từ trang tính, chúng tôi sẽ sử dụng chức năng GetRange mà chúng tôi sẽ chuyển bắt đầu từ cột đầu tiên và hàng đầu tiên, sử dụng chức năng GetRange, theo sau bằng cách sử dụng chức năng GetValues ​​và lưu trữ nó trong một nhãn thay đổi.

const options = data.getRange[startColumnIndex, startRowIndex, lastRowIndex, lastColumnIndex].getValues[]

Vì sẽ có nhiều tùy chọn cho mỗi câu hỏi, chúng tôi sẽ phải trải qua từng tùy chọn. Sử dụng chức năng foreach, chúng tôi sẽ đi qua từng tùy chọn cho mỗi câu hỏi. Trong hàm foreach, chúng tôi sẽ vượt qua biến nhãn và biến I để lặp lại thông qua tất cả các tùy chọn trong trang tính. Tiếp theo, chúng tôi sẽ sử dụng chức năng GetRange để trích xuất các tùy chọn từ biến dữ liệu có chứa các câu hỏi và tùy chọn từ tờ Google. Có thể có n số tùy chọn trong trang tính, vì vậy chúng tôi sẽ sử dụng chức năng GetLastrow để có được tất cả các tùy chọn từ tờ Google.

updateDropdownTitle[label,options]

Cuối cùng, chúng tôi đã gọi chức năng UpdateDropdownTitle và chuyển nhãn và tùy chọn trong hàm.updateDropdownTitle and passed the label and options in the function.

function updateDropdownTitle[title,values]{
      const items = form.getItems[];
      const titles = items.map[item =>  item.getTitle[]]
      const pos = titles.indexOf[title];
      const item = items[pos]; 
      const itemID = item.getId[];
      updateDropdown[itemID,values];
   }

Để thêm các tùy chọn cho mỗi câu hỏi, chúng tôi cần lấy câu hỏi từ biểu mẫu Google. Để làm điều đó, chúng tôi sẽ sử dụng chức năng GetItems, sẽ nhận được tất cả dữ liệu từ biểu mẫu và lưu trữ nó trong một mảng. Để có được mỗi câu hỏi bằng ID, chúng tôi sẽ ánh xạ qua từng câu hỏi và nhận được từng tiêu đề câu hỏi.getItems function, which will get all the data from the Form and store it in an array. To get each question by the id we are going to map through each of them and get each of the question titles.

Để đặt các tùy chọn, chúng ta cần có được vị trí chính xác cho mỗi câu hỏi. Để làm điều đó, chúng tôi sẽ tạo ra một biến POS mới có được vị trí của câu hỏi bằng cách sử dụng hàm indexof và vượt qua các tiêu đề mà chúng tôi có trước đây.indexOf function and passing the titles that we previously got.

const pos = titles.indexOf[title];
const item = items[pos];
const itemID = item.getId[];
updateDropdown[itemID,values];

Bây giờ chúng tôi đã có các vị trí cho các câu hỏi, chúng tôi sẽ có được câu hỏi cá nhân. Để làm điều đó, chúng tôi đang tạo một mục biến mới và truyền trong biến các mục mà chúng tôi đã tạo và chuyển biến POS. Cuối cùng, để đặt các giá trị chúng ta cần để có được ID chính xác của mỗi câu hỏi. Để có được ID cho mỗi câu hỏi, chúng tôi sẽ sử dụng hàm getID và vượt qua biến mục chứa mỗi câu hỏi.pos variable. Finally, to set the values we need to get the exact id of each question. To get the id for each question, we are going to use the getId function and pass the item variable that contains each question.

updateDropdown[itemID,values];

Cuối cùng, chúng tôi đã gọi chức năng UpdatedRopdown và chuyển ID cho mỗi câu hỏi theo sau là các tùy chọn.updateDropdown and passed the id for each question followed by the options.

function updateDropdown[id,values]{
     const item = form.getItemById[id];
     item.asMultipleChoiceItem[].setChoiceValues[values];
}

Đây là chức năng quan trọng nhất trong mã. Hàm này hiện sẽ đặt các tùy chọn cho mỗi câu hỏi trong biểu mẫu Google. Trong getItemByID, chúng tôi đã chuyển ID của câu hỏi dưới dạng tham số và sau đó cho mỗi câu hỏi, chúng tôi sẽ đặt các giá trị lựa chọn và truyền trong biến giá trị chứa các tùy chọn cho mỗi câu hỏi.getItembyId, we have passed the id of the question as a parameter and then for each question, we are going to set the choice values and pass in the values variable that contains the options for each question.

Tìm hiểu thêm về tập lệnh ứng dụng Google tại đây

Bước4: Kiểm tra đầu ra

Mã của chúng tôi đã hoàn tất. Chọn chức năng chính xác [chính] như được hiển thị bên dưới và chạy chương trình.

Khi thực hiện thành công, tập lệnh sẽ lấy các tùy chọn từ tờ Google và đặt chúng vào mẫu Google.

Bản tóm tắt

Chúng tôi đã thấy cách bạn có thể tự động trình tùy chọn trong các biểu mẫu Google bằng tập lệnh Google Apps.

Nếu bạn thích xem video thay vì đọc, chúng tôi đã bảo vệ bạn:

Tôi hy vọng bạn đã hiểu làm thế nào để tự động điền các tùy chọn trong các biểu mẫu của Google bằng tập lệnh Google Apps. Bạn có thể gửi phản hồi của bạn đến.

Google Forms có thể tự động xuất hiện từ bảng tính không?

Bạn có thể tạo một bảng tính mới cho các phản hồi trong Google Sheets hoặc chọn từ bảng tính hiện có của bạn trong Google Sheets để lưu trữ phản hồi.Khi bạn liên kết biểu mẫu Google của mình với bảng tính, các phản hồi mới sẽ tự động được đồng bộ hóa.Once you link your google form with a spreadsheet, the new responses will automatically synced.

Làm cách nào để tự động điền vào biểu mẫu Google dựa trên trường khác?

Nhấp vào biểu tượng bổ trợ một lần nữa, chọn các trường động và lần này nhấp vào tùy chọn Ánh xạ cập nhật.Bạn sẽ thấy các trường trả lời cho các câu hỏi khảo sát của bạn tự động thể hiện với các tùy chọn từ nguồn dữ liệu của bạn.. You should see the answer fields to your survey questions auto-populate with the options from your data source.

Làm thế nào để bạn đồng bộ hóa Excel với các biểu mẫu của Google?

Trong tài liệu Excel của bạn và chọn Dữ liệu >> Nhận dữ liệu bên ngoài >> từ Web.Nhấp vào hộp kiểm xuất hiện ở phía trên bên trái của Google Drive [hộp thoại Excel] đăng nhập vào Google và chọn cài đặt chia sẻ cần thiết của bạn.Có thể mất vài giây/phút sau khi thay đổi bảng tính Google để được cập nhật lên web.

Bài Viết Liên Quan

Chủ Đề