在应用程序A的Google应用程序脚本中,如何使用SpreadsheetApp的功能?

时间:2014-08-23 00:24:08

标签: google-apps-script

考虑到Google表单app script的开发(FormApp),在某些时候可能需要在电子表格中存储相关数据(例如,处理提交的回复)(一个特定于应用程序脚本,而不是作为表单目标的脚本。)

使用Google Spreadsheet应用程序这样做可能很有用(因为它提供了查询此类数据的功能)。

不幸的是,在SpreadsheetApp中打开的脚本中对FormApp的任何调用都会引发错误,并且有关此类跨应用程序使用是否可行的文档不清楚。

后备解决方案是使用Google Drive API访问电子表格对象,但特定的电子表格功能(管理结构化的数据行,查询......)似乎无法从那里获得。

那么有没有办法在FormApp应用脚本中使用电子表格功能?

1 个答案:

答案 0 :(得分:1)

你说:"在FormApp中打开的脚本中对SpreadsheetApp的任何调用都会引发错误"

这根本不是真的......

您实际上可以运行一个表单嵌入式脚本,该脚本使用外部电子表格中的数据而没有任何问题 您只需使用适当的方法打开电子表格即 SpreadsheetApp.openByUrl('SS url');SpreadsheetApp.openById('SS ID');,然后您可以打开工作表(getSheetByName('name')getSheets()[number])并获取值,设置值或任何您想要的内容。

您的帖子结束时说"有没有办法在FormApp应用脚本中使用电子表格功能?"

我希望您没有考虑到使用电子表格功能,例如您在单元格中使用的本机电子表格功能...."因为无论您在哪里保存脚本,这些都无法在Google Apps脚本中使用。但我确定你没有意思,而且这只是一种语言歧义。

作为一个简单的例子,这是一个用Form脚本编写的小函数,它的结果作为日志。

function getSsData() {
  var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1xDOaoSl3HbkS95cj8Jl-82rdiui7G0sFz96PIO6iVF4/edit#gid=0');
  var sh = ss.getSheetByName('calNames');
  Logger.log(sh.getDataRange().getValues());
}

该表格是可见的here,我没有共享该表单,因为我无法仅在视图中共享该表单,但任何表单都可用于测试上述脚本。

enter image description here