Как получить и ссылаться на данные из указанной ячейки в электронной таблице Google? - PullRequest
0 голосов
/ 05 июня 2019

Я работаю над инструментом для своего отдела, который, в конце концов, будет просматривать календари людей в Google за установленный диапазон дат и заполнять электронную таблицу списком всех запланированных собраний, которые они провели за этот период.

Код в настоящее время работает с жестко запрограммированной датой и адресом электронной почты для рисования, но выдает вышеуказанную ошибку, когда я ссылаюсь на ячейку электронной таблицы (люди будут вводить свой адрес электронной почты и диапазон дат для рисования взаполняемая форма).

Я пытался использовать getRange (), getValue () и getCell (), и ни один из них не работал.

Код проблемы таков:

var sheet = SpreadsheetApp.getActive();

var inputSheet = sheet.getSheetByName("InputCleaner");

var outputSheet = sheet.getSheetByName("RawData");

var mycal = inputSheet.getCell(5,2,1,1);

var cal = CalendarApp.getCalendarById(mycal);

var events = cal.getEvents(new Date("January 12, 2014 00:00:00 CST"), new Date("July 18, 2019 23:59:59 CST"), {search: '-project123'});

Когда я пытаюсь выполнить приведенный выше код, выдается следующая ошибка:

TypeError: Невозможно найти функцию getCell в объекте Sheet.(строка 32, файл «Код»)

Приведенный выше код прекрасно работает, если в строке 3 вместо ссылки на ячейку просто указан адрес электронной почты, например:

var mycal = "example.email@gmail.com";

Но мне нужно, чтобы он мог рисовать адрес электронной почты из определенной ячейки на листе.

1 Ответ

0 голосов
/ 05 июня 2019

попробуйте это:

function function1() {
  var ss=SpreadsheetApp.getActive();
  var ish=ss.getSheetByName("InputCleaner");
  var osh=ss.getSheetByName("RawData");
  var mycal=ish.getRange(5,2).getValue();
  var cal=CalendarApp.getCalendarById(mycal);
  var events=cal.getEvents(new Date("January 12, 2014 00:00:00 CST"), new Date("July 18, 2019 23:59:59 CST"), {search: '-project123'});//not sure about this line
}

Вот функция отображения идентификаторов вашего календаря:

function displayCalendarInfo()
{
  var cals=CalendarApp.getAllCalendars();
  var s='Calendar Information';
  for(var i=0;i<cals.length;i++)
  {
    s+=Utilities.formatString('<br />Name: %s Id: %s', cals[i].getName(),cals[i].getId());
  }
  s+='<br /><input type="button" value="Close" onClick="google.script.host.close();" />';
  var ui=HtmlService.createHtmlOutput(s).setWidth(1200).setHeight(450);
  SpreadsheetApp.getUi().showModelessDialog(ui, 'Calendar Data');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...