स्क्रिप्ट का उपयोग करके Google स्प्रैडशीट में Google फ़ॉर्म से प्रतिक्रियाओं को संपादित करने के लिए उपयोग किया गया शो URL


11

मैं Google फ़ॉर्म के लिए संपादित URL बनाने की कोशिश कर रहा हूं, जो उस Google शीट से जुड़ी प्रतिक्रिया में स्वचालित रूप से पॉप्युलेट होता है। मैंने देखा है यह पहले से ही है और इसका उपयोग करना चाहते हैं, लेकिन मैं यह पता लगाने की जहां वास्तव में स्क्रिप्ट डाल करने की कोशिश कर समस्याएं आ रही हैं।

मैंने इसे Google स्प्रेडशीट में स्क्रिप्ट एडिटर में डालने की कोशिश की है, जिसमें मैं URL को प्रकट करना चाहूंगा, लेकिन मुझे यकीन नहीं है कि वहां से कहां जाना है। स्क्रिप्ट एडिटर में मैंने इसे एड-ऑन के रूप में जांचने की कोशिश की है, लेकिन यह काम खत्म नहीं हुआ।

मुझे स्क्रिप्ट्स और Google शीट्स में स्क्रिप्ट एडिटर के साथ बहुत कम अनुभव है। अंतिम नोट के रूप में मैं उसी Google स्प्रेडशीट में AutoCrat नामक एक अन्य ऐड-ऑन का उपयोग कर रहा हूं।


उस कोड के स्रोत के लिंक के अलावा जिसे आपने कोड शामिल करने के लिए अच्छा प्रयास किया और आपके परीक्षण करने के लिए चरणों का पालन किया।
Ruben

जवाबों:


16

संक्षिप्त जवाब

लिंक एक क्यू एंड ए दो जवाब लेकिन गैर की उन्हें मेरे लिए लग रहा है कि करने के लिए अंक उपयुक्त माना जाता है। IE उत्तर में से एक का कोड अधूरा है और दोनों ईमेल भेजते हैं, इसलिए गोद लेना बहुत जटिल है जिसे शुरुआती बिंदु के रूप में उपयोग किया जा सकता है।

नीचे एक स्क्रिप्ट है जिसे अपनाना आसान है।

अनुदेश

  1. एक परीक्षण फ़ॉर्म बनाएं और ध्यान दें प्रपत्र आईडी (के बीच ../d/और /editयूआरएल में)। नए रूप मे

  2. नई स्प्रैडशीट पर प्रतिक्रियाएँ भेजने के लिए फ़ॉर्म सेट करें। एक स्प्रेडशीट कनेक्ट करें

  3. आपको नई स्प्रेडशीट पर पुनः निर्देशित किया जाएगा। सक्रिय शीट नाम पर ध्यान दें (यदि आप चाहते हैं तो इसका नाम बदलें) और प्रतिक्रिया एडिट URL को रखने के लिए उपयोग किए जाने वाले कॉलम में एक हेडर जोड़ें Edit Url। नोट: कैपिटलाइज़ेशन बहुत महत्वपूर्ण है, इसलिए आप इसे कैसे लिखते हैं, इस पर बहुत सावधान रहें। जवाब स्प्रेडशीट

  4. Tools > Script editorस्प्रेडशीट में बंधे Google Apps स्क्रिप्ट प्रोजेक्ट को जोड़ने के लिए जाएं । स्प्रेडशीट स्क्रिप्ट

  5. नीचे दिए गए कोड के साथ डिफ़ॉल्ट कोड को बदलें (अपने मामले के अनुसार वैश्विक चर को संपादित करने के लिए याद रखें)। स्क्रिप्ट कोड

  6. प्रोजेक्ट को सहेजें, और फिर एक इंस्टॉल करने योग्य फॉर्म समिट ट्रिगर जोड़ें (यदि आपको "प्राधिकरण आवश्यक" संवाद मिलता है, तो "समीक्षा अनुमतियाँ" और फिर "अनुमति दें" पर क्लिक करें)। फॉर्म जमा करें ट्रिगर

  7. समाधान का परीक्षण करने के लिए कुछ नमूना प्रतिक्रियाएं भेजें।

कोड

/*
 * Global Variables
 */

// Form URL
var formURL = 'https://docs.google.com/forms/d/form-id/viewform';
// Sheet name used as destination of the form responses
var sheetName = 'Form Responses 1';
/*
 * Name of the column to be used to hold the response edit URLs 
 * It should match exactly the header of the related column, 
 * otherwise it will do nothing.
 */
var columnName = 'Edit Url' ;
// Responses starting row
var startRow = 2;

function getEditResponseUrls(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues(); 
  var columnIndex = headers[0].indexOf(columnName);
  var data = sheet.getDataRange().getValues();
  var form = FormApp.openByUrl(formURL);
  for(var i = startRow-1; i < data.length; i++) {
    if(data[i][0] != '' && data[i][columnIndex] == '') {
      var timestamp = data[i][0];
      var formSubmitted = form.getResponses(timestamp);
      if(formSubmitted.length < 1) continue;
      var editResponseUrl = formSubmitted[0].getEditResponseUrl();
      sheet.getRange(i+1, columnIndex+1).setValue(editResponseUrl);
    }
  }
}

अतिरिक्त संसाधन

मैंने प्रश्न और उत्तर की सामग्री के साथ एक जिस्ट बनाया । यह b / c मैं अंत-उपयोगकर्ताओं के बीच बेहतर सहयोग के तरीके खोज रहा हूं जो कोड लिखते हैं।


1
मुझे यह मिल गया, यह शीट का नाम था, और मैंने URL के अंत में '/ viewform' निकाला। बहुत बहुत धन्यवाद!
खरोंच

1
@ रूबेन - मैंने आपके महान ट्यूटोरियल में थोड़ा और विवरण जोड़ने की स्वतंत्रता ली, क्योंकि जब मैंने खुद इसका पालन किया तो मैं कुछ चरणों से जूझ गया।
स्फिंक्सएक्स

1
ठीक है। मेरे द्वारा कोड बदलने का मुख्य कारण यह दिखाना था कि आप भविष्य में Google के URL प्रारूप में परिवर्तन होने पर पूरे URL के FormApp.openById()बजाय केवल फ़ॉर्म ID का उपयोग कर सकते FormApp.openByUrl()हैं। मैं इसके बजाय आपकी टिप्पणी पर टिप्पणी छोड़ दूंगा।
स्फिंक्सएक्स

3
मेरी Google स्क्रिप्ट विंडो में, "वर्तमान प्रोजेक्ट के ट्रिगर" "एडिट" के अंतर्गत थे।
डीवीबी

1
@HoangTrinh देखें canEditResponse ()
रुबेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.