Нужно, чтобы Google Sheet распознавал несколько новых строк данных и отправлял их в API в формате XML - PullRequest
0 голосов
/ 27 сентября 2019

Итак, я уже знаком с тем фактом, что я могу установить триггеры так, чтобы при изменении некоторых данных на листе запускалась функция, а также тот факт, что я могу получить последнюю строку листа при изменении.

Цель этого состоит в том, чтобы иметь возможность вставлять несколько новых строк в таблицу Google, распознавать эти несколько новых строк и отправлять на внешний API, который принимает только формат XML.

Документация для внешнего API для получения этой информации находится здесь ...

var form = new FormData();
form.append("first_name", "lastRow[1]");
form.append("last_name", "lastRow[2]");
form.append("status", "Cold");
form.append("city", "lastRow[8]");
form.append("state", "lastRow[9]");
form.append("zip_code", "lastRow[10]");
form.append("email_address", "lastRow[0]");
form.append("phone_home ", "lastRow[3]");
form.append("home_type", "lastRow[31]");
form.append("num_bath", "lastRow[41]");
form.append("num_bed", "lastRow[40]");
form.append("budget", "{{budget}}");
form.append("timeframe_to_purchase", "{{timeframe}}");
form.append("credit_estimate", "{{credit score}}");
form.append("client_id", "CM");
form.append("comments", "{{notes}}");

var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://elnpost.net/d.ashx?ckm_campaign_id=42&ckm_key=jkdX9gZD6o",
  "method": "POST",
  "headers": {
    "cache-control": "no-cache",
    "Postman-Token": "29f328bc-ae8d-4107-919c-b524954c8e11"
  },
  "processData": false,
  "contentType": false,
  "mimeType": "multipart/form-data",
  "data": form
}

$.ajax(settings).done(function (response) {
  console.log(response);
});

Самое сложное в этом - заставить Google Sheets распознавать несколько строк новых данных.Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 28 сентября 2019

Это даст вам данные.Я полагаю, вы можете понять, как его использовать.Если вы хотите, чтобы диалоговое окно отображало данные, вам нужно будет создать для него устанавливаемый триггер.Вы также можете изменить название листа.В настоящее время для этого необходимо вставить более одной ячейки.

function onMyEdit(e) {
  if(e.range.getSheet().getName()=='Sheet1' && (e.range.rowEnd-e.range.rowStart)>0 || (e.range.columnEnd-e.range.columnStart)>0) {
    var rg=e.range.getSheet().getRange(e.range.rowStart,e.range.columnStart,e.range.rowEnd-e.range.rowStart+1,e.range.columnEnd-e.range.columnStart+1);
    var vA=rg.getValues();
    var html="<style>td{border:1px solid black)</style><table>";
    for(var i=0;i<vA.length;i++) {
      html+='<tr>';
      for(var j=0;j<vA[i].length;j++) {
        html+=Utilities.formatString('<td>%s</td>', vA[i][j]);
      }
      html+='</tr>';
    }
    html+='</table>';
    var userInterface=HtmlService.createHtmlOutput(html);
    SpreadsheetApp.getUi().showModelessDialog(userInterface, "View Data");
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...