如何从Google电子表格中的给定单元格中提取和引用数据?

时间:2019-06-05 16:15:21

标签: google-apps-script google-sheets reference

我正在为我部门的工具工作,最后,该工具将查看在设定日期范围内的人们的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:在对象Sheet中找不到函数getCell。 (第32行,文件“代码”)

如果第3行(而不是引用单元格)仅具有如下电子邮件地址本身,则上面的代码可以正常运行:

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

但是我需要它能够从工作表中的特定单元格中提取电子邮件地址。

1 个答案:

答案 0 :(得分:0)

尝试一下:

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
}

这是显示日历ID的功能:

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');
}