Google form để cập nhật bảng tính
Chủ sở hữu biểu mẫu có thể cần chỉnh sửa một vài câu trả lời của biểu mẫu trong bảng tính để sửa một số thông tin. Chủ đề này dường như lặp đi lặp lại trong nhiều năm nhưng Google vẫn không hỗ trợ tính năng này. Chúng tôi từng nghĩ rằng bằng cách chỉnh sửa các ô trong bảng tính được liên kết, những phản hồi này cũng sẽ thay đổi. Nhưng tiếc là nó không. Để chỉnh sửa phản hồi thực, bạn cần một liên kết có tên là URL Chỉnh sửa phản hồi biểu mẫu Show
Hướng dẫn này chỉ cho bạn cách tập lệnh ứng dụng xfanatical được xây dựng có thể cho phép bạn chỉnh sửa phản hồi của biểu mẫu trực tiếp trong bảng tính Bước 1. Chuẩn bị biểu mẫu và bảng tính của bạn
Bước 2. Thiết lập Apps Script kỳ diệu trong Bảng tính của bạn
Bước 3. tự động hóaThật mệt mỏi khi thiết lập tất cả các phần, phải không? . Nhưng chúng tôi gần như ở đó
Bước 4. Chỉnh sửa câu trả lời trong bảng tính
báo trước đã biếtKịch bản không chính xác 100% khi nói đến trường hợp cạnh của các phản hồi liên tiếp. Ví dụ: nếu 4 câu trả lời được ghi lại trong
4 URL chỉnh sửa phản hồi có thể có khả năng gây rối vì dấu thời gian là yếu tố duy nhất khớp phản hồi biểu mẫu với bản ghi trong trang đích. Thêm logic phù hợp của bạn nếu cần thiết Mã nguồn/** * @license MIT * * © 2019-2020 xfanatical.com. All Rights Reserved. * * @since 1.1.2 interface fix * @since 1.1.1 Optimize performance (continued) * @since 1.1.0 Optimize performance * @since 1.0.0 Add all edit response urls and update new urls for new submissions */ function registerNewEditResponseURLTrigger() { // check if an existing trigger is set var existingTriggerId = PropertiesService.getUserProperties().getProperty('onFormSubmitTriggerID') if (existingTriggerId) { var foundExistingTrigger = false ScriptApp.getProjectTriggers().forEach(function (trigger) { if (trigger.getUniqueId() === existingTriggerId) { foundExistingTrigger = true } }) if (foundExistingTrigger) { return } } var trigger = ScriptApp.newTrigger('onFormSubmitEvent') .forSpreadsheet(SpreadsheetApp.getActive()) .onFormSubmit() .create() PropertiesService.getUserProperties().setProperty('onFormSubmitTriggerID', trigger.getUniqueId()) } function getTimestampColumn(sheet) { for (var i = 1; i <= sheet.getLastColumn(); i += 1) { if (sheet.getRange(1, i).getValue() === 'Timestamp') { return i } } return 1 } function getFormResponseEditUrlColumn(sheet) { var form = FormApp.openByUrl(sheet.getFormUrl()) for (var i = 1; i <= sheet.getLastColumn(); i += 1) { if (sheet.getRange(1, i).getValue() === 'Form Response Edit URL') { return i } } // get the last column at which the url can be placed. return Math.max(sheet.getLastColumn() + 1, form.getItems().length + 2) } /** * params: { sheet, form, formResponse, row } */ function addEditResponseURLToSheet(params) { if (!params.col) { params.col = getFormResponseEditUrlColumn(params.sheet) } var formResponseEditUrlRange = params.sheet.getRange(params.row, params.col) formResponseEditUrlRange.setValue(params.formResponse.getEditResponseUrl()) } function onOpen() { var menu = [{ name: 'Add Form Edit Response URLs', functionName: 'setupFormEditResponseURLs' }] SpreadsheetApp.getActive().addMenu('Forms', menu) } function setupFormEditResponseURLs() { var sheet = SpreadsheetApp.getActiveSheet() var spreadsheet = SpreadsheetApp.getActive() var formURL = sheet.getFormUrl() if (!formURL) { SpreadsheetApp.getUi().alert('No Google Form associated with this sheet. Please connect it from your Form.') return } var form = FormApp.openByUrl(formURL) // setup the header if not existed var headerFormEditResponse = sheet.getRange(1, getFormResponseEditUrlColumn(sheet)) var title = headerFormEditResponse.getValue() if (!title) { headerFormEditResponse.setValue('Form Response Edit URL') } var timestampColumn = getTimestampColumn(sheet) var editResponseUrlColumn = getFormResponseEditUrlColumn(sheet) var timestampRange = sheet.getRange(2, timestampColumn, sheet.getLastRow() - 1, 1) var editResponseUrlRange = sheet.getRange(2, editResponseUrlColumn, sheet.getLastRow() - 1, 1) if (editResponseUrlRange) { var editResponseUrlValues = editResponseUrlRange.getValues() var timestampValues = timestampRange.getValues() for (var i = 0; i < editResponseUrlValues.length; i += 1) { var editResponseUrlValue = editResponseUrlValues[i][0] var timestampValue = timestampValues[i][0] if (editResponseUrlValue === '') { var timestamp = new Date(timestampValue) if (timestamp) { var formResponse = form.getResponses(timestamp)[0] editResponseUrlValues[i][0] = formResponse.getEditResponseUrl() var row = i + 2 if (row % 10 === 0) { spreadsheet.toast('processing rows ' + row + ' to ' + (row + 10)) editResponseUrlRange.setValues(editResponseUrlValues) SpreadsheetApp.flush() } } } } editResponseUrlRange.setValues(editResponseUrlValues) SpreadsheetApp.flush() } registerNewEditResponseURLTrigger() SpreadsheetApp.getUi().alert('You are all set! Please check the Form Response Edit URL column in this sheet. Future responses will automatically sync the form response edit url.') } function onFormSubmitEvent(e) { var sheet = e.range.getSheet() var form = FormApp.openByUrl(sheet.getFormUrl()) var formResponse = form.getResponses().pop() addEditResponseURLToSheet({ sheet: sheet, form: form, formResponse: formResponse, row: e.range.getRow(), }) } Lấy điVì bạn sẽ lặp lại biểu mẫu và bảng tính theo thời gian, tập lệnh ứng dụng có thể không xử lý những thay đổi đó và hoạt động không bình thường. Nếu có hãy để lại bình luận bên dưới. Cảm ơn vì đã đọc Google Biểu mẫu có thể lấy dữ liệu từ bảng tính không?Bạn cũng có thể nhập dữ liệu từ Google Trang tính để gửi chúng tới Google Biểu mẫu . Mặc dù nó không phải là kết nối gốc, như đã nói ở trên, vì vậy bạn cũng sẽ cần một tiện ích bổ sung tại đây để hoàn thành nhiệm vụ. Trên Google Trang tính, bạn có thể nhận được một số tiện ích bổ sung có thể chuyển đổi bảng tính của bạn thành biểu mẫu.
Bạn có thể chỉnh sửa bảng tính được liên kết với Biểu mẫu Google không?Google Biểu mẫu không chỉnh sửa dữ liệu trong Google Trang tính , thay vào đó chúng gửi phản hồi. Phản hồi được gửi tới bảng tính Google có thể được cập nhật nhưng phải bật tùy chọn "Cho phép người dùng chỉnh sửa phản hồi".
Bạn có thể liên kết Biểu mẫu Google với trang tính Excel không?Zapier cho phép bạn tự động gửi thông tin giữa Google Biểu mẫu và Microsoft Excel —không cần mã. Kích hoạt khi nhận được phản hồi biểu mẫu mới. tự động làm điều này. |