Komut dosyası kullanarak bir Google E-Tablodaki bir Google Formundan gelen yanıtları düzenlemek için kullanılan URL'yi göster


11

Bir Google Formu için düzenleme URL'sini bağlı olduğu Google E-Tablosunda otomatik olarak doldurmaya çalışıyorum. Gördüğüm bu zaten ve onu kullanmak istiyorum, ama tam olarak senaryoyu koymak için nereye anlamaya çalışıyorum sorunları yaşıyorum.

URL'nin görünmesini istediğiniz Google E-Tablodaki komut dosyası düzenleyicisine koymayı denedim, ancak oradan nereye gideceğinden emin değilim. Komut dosyası düzenleyicisinde bunu bir eklenti olarak test etmeye çalıştım, ancak bu işe yaramadı.

Google E-Tablolar'daki komut dosyaları ve komut dosyası düzenleyicisiyle ilgili çok az deneyimim var. Son bir not olarak, aynı Google E-Tablo'da AutoCrat adlı başka bir eklenti kullanıyorum.


Kodun kaynağının yanı sıra, kodu ve testlerinizi yapmak için izlenen adımları eklemeyi iyi denediniz.
Rubén

Yanıtlar:


16

Kısa cevap

Bağlantı iki cevap ama bunların-olmayan bana bakar sahip bir Q & A noktaları uygun olanı olmak. IE, cevaplardan birinin kodu eksik ve her ikisi de e-posta gönderiyor, bu yüzden benimseme bir başlangıç ​​noktası olarak kullanmak için çok karmaşık.

Aşağıda benimsenmesi daha kolay bir betik bulunmaktadır.

Talimatlar

  1. Bir test formu oluşturun ve form kimliğini not edin ( url arasında ../d/ve /editiçinde). Yeni form

  2. Yeni bir e-tabloya yanıt göndermek için formu ayarlayın. Bir e-tablo bağlayın

  3. Yeni e-tabloya yönlendirileceksiniz. Etkin sayfa adını not edin (isterseniz yeniden adlandırın) ve yanıt düzenleme URL'lerini tutmak için kullanılacak sütuna bir başlık ekleyin Edit Url; NOT: Büyük harf kullanımı çok önemlidir, bu yüzden nasıl yazdığınıza çok dikkat edin. Yanıtlar e-tablosu

  4. Tools > Script editorE-tabloyla sınırlı bir Google Apps Komut Dosyası projesi eklemek için adresine gidin . Elektronik tablo komut dosyaları

  5. Varsayılan kodu aşağıdaki kodla değiştirin (genel değişkenleri durumunuza göre düzenlemeyi unutmayın). Komut dosyası kodu

  6. Projeyi kaydedin ve sonra yüklenebilir bir form zirve tetikleyicisi ekleyin ("Yetkilendirme gerekli" iletişim kutusu görüntülenirse, "İzinleri Gözden Geçir" i ve ardından "İzin Ver" i tıklatın). Form gönderme tetikleyicisi

  7. Çözümü test etmek için bazı örnek yanıtlar gönderin.

kod

/*
 * 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);
    }
  }
}

Ek kaynaklar

Soru ve cevaptaki içerikle bir özgeçmiş oluşturdum . Bu b / c Kod yazan son kullanıcılar arasında daha iyi işbirliği yapmanın yollarını araştırıyorum.


1
Anladım, sayfa adıydı ve URL'nin sonunda '/ viewform' ı çıkardım. Çok teşekkürler!
nicks

1
@ Rubén - Kendim takip ettiğimde birkaç adımla mücadele ederken harika öğreticinize biraz daha ayrıntı ekleme özgürlüğünü aldım.
Sphinxxx

1
Tamam. Kodu değiştirmemin ana nedeni , gelecekte Google'ın URL biçiminin değişmesi durumunda URL'nin tamamı FormApp.openById()yerine yalnızca form kimliği ile kullanabileceğinizi göstermekti FormApp.openByUrl(). Onun yerine özüne bir yorum bırakacağım.
Sphinxxx

3
Google komut dosyası penceresinde "Geçerli projenin tetikleyicileri", "Düzenle" altındaydı.
dvb

1
@HoangTrinh Bkz. CanEditResponse ()
Rubén
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.