使用Google电子表格中的数据预填Google表格

时间:2015-12-15 13:20:31

标签: google-apps-script google-sheets

我不是一个程序员,只是一个Google Docs用户,他们试图让日常工作更轻松。我已经制作了一些非常有用的小脚本,比如一次点击就可以向其他用户发送通知电子邮件。现在我有一个棘手的问题,我不知道如何解决,在搜索了几天之后,仍然没有任何线索。

我正在使用Google SpreadSheet。如果我点击"链接",则应打开预先设计的Google表单,该表单包含:WONameEngineer字段,填充此行&# 39; s数据。例如:Google表单的Row 1应在相应的表单字段中填写4478,AAAAAAAA and David`。用户应该能够更改它们。

谢谢你们纠正我可怜的英语^^

到目前为止我可以做,从调试日志,它可以从SpreadSheet获取正确的数据。问题是当用户点击"链接"时,我不知道如何运行此功能。打开Goog​​le表单。

    function Finish() {
  var sheetOpen = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Open ticket list");
  var dataOpen = sheetOpen.getDataRange().getValues();
  var cellOpen = sheetOpen.getActiveCell();
  var currentRow = cellOpen.getRow();
  var wo = sheetOpen.getRange(currentRow, 1).getValue();
  var name = sheetOpen.getRange(currentRow, 3).getValue();
  var omEng = sheetOpen.getRange(currentRow, 5).getValue();
  // Browser.msgBox('wo = '+ wo +' and name = '+ name +' and Engineer = '+ omEng);

  var form = FormApp.openById('formid');

  Logger.log('Form Title is '+ form.getTitle()); 

  var allItems = form.getItems();
  Logger.log('Total items in this form '+ allItems.length)

  var woId=0;
  var nameId=0;
  var omEngId=0;

  for (i=0; i < allItems.length ; ++i) {
    var itemTitle = allItems[i].getTitle();
    Logger.log('Item Title '+ itemTitle);

    if (itemTitle == 'wo') {
      woId = allItems[i].getId();
    }
  }

  for (i=0; i < allItems.length ; ++i) {
    var itemTitle = allItems[i].getTitle();
    Logger.log('Item Title '+ itemTitle);

    if (itemTitle == 'name') {
      nameId = allItems[i].getId();
    }
  }

  for (i=0; i < allItems.length ; ++i) {
    var itemTitle = allItems[i].getTitle();
    Logger.log('Item Title '+ itemTitle);

    if (itemTitle == 'Engineer') {
      omEngId = allItems[i].getId();
    }
  }


  var woItem = form.getItemById(woId).asTextItem();
  woItem.createResponse(wo);

  var nameItem = form.getItemById(nameId).asListItem();
  nameItem.createResponse(name);

  var omEngItem = form.getItemById(omEngId).asListItem();  
  omEngItem.createResponse(omEng);


}

0 个答案:

没有答案