创建独立脚本以自动生成谷歌表单,可能是QR代码

时间:2014-02-02 18:45:14

标签: google-apps-script google-spreadsheet-api google-form

我正在尝试创建一个脚本,该脚本将记录学生姓名,作业和状态(签出,签到,返回给学生),以便为预填充的Google表单创建URL。数据看起来像这样

    A1               B1            C1
    Student name   Assignment     Status
    Kevin          Test 1         Check-out
    Bob            Test 2         Check-in
    Stan                          Returned

我想为每个状态的每个学生创建一个URL。说当我向表中添加一个赋值时,脚本会为每个状态吐出一个预填表单的URL。因此,如果我添加了测试3,那么我会预先填写(kevin,test 3,In)(Kevin,Test 3,Out)(Kevin,Test 3,返回)......等等,每个学生。

我最终希望将这些转换为预先填写的自动提交网址,该网址是QR代码的一部分。这样我就可以将QR码放在他们的作业上并在他们拿到时扫描它,在它返回时扫描另一个,然后在我将它返回给他们时扫描第三个。这样,只需扫描即可快速轻松地继续前进。我不知道从哪里开始。

一直在努力:

  /* Use Form API to generate pre-filled form URLs
  */
  function QRGenerater() {
    var ss = SpreadsheetApp.getActive();
    var sheet = ss.getSheetByName("Sheet1");
    var data = ss.getDataRange().getValues();  // Data for pre-fill

    var formUrl = ss.getFormUrl();             // Use form attached to sheet
    var form = FormApp.openByUrl("https://docs.google.com/formsd/15ssivqvdynjvrYxRApsWyLf10qSgrhM5VRyjqZdYxCQ/edit#");
    var items = form.getItems();

    // Skip headers, then build URLs for each row in Sheet1.
    for (var i = 1; i < data.length; i++ ) {
      // Create a form response object, and pre-fill it
      var formResponse = form.createResponse();

      // Prefill Name
      var formItem = items[0].asListItem();
      var response = formItem.createResponse(data[i][1]);
      formResponse.withItemResponse(response);

      // Prefill Assignment
      var formItem = items[1].asListItem();
      var response = formItem.createResponse(data[i][2]);
      formResponse.withItemResponse(response);

     // Prefill Status
     var formItem = items[2].asListItem();
     var response = formItem.createResponse(data[i][3]);
     formResponse.withItemResponse(response);


     // Get prefilled form URL
     var url = formResponse.toPrefilledUrl();
      Logger.log(url);  // You could do something more useful here.  
    Logger = BetterLog.useSpreadsheet('0AkZFz57HfPamdDRhZDN0cDhSX3FQNXh3a2M0YnBXdUE');
      }
    };

但它并不能完全符合我的要求。只记录URL,它仅用于预填充链接。也不知道如何获得它生成的链接,最终在电子表格中。

1 个答案:

答案 0 :(得分:0)

您使用的脚本看起来就像是由Mogsdad创建的脚本。

回答有关您可以使用的网址的最新问题

 range = sheet.getRange(number, number)
 var sheetwrite = sheet.setActiveRange(range)
 sheetwrite.setValue(URL);

数字,数字对应于行/列。

使用QR码,您可以根据创建的唯一网址生成QR。