连接工作表不能以宏或脚本为目标

Posted

技术标签:

【中文标题】连接工作表不能以宏或脚本为目标【英文标题】:Connected Sheets cannot be targeted with macros or Scripts 【发布时间】:2020-07-15 18:29:16 【问题描述】:

随着 Connected Sheets 更新的推出,G Suite 域(显然)正在从初始 BigQuery 数据连接器升级,该连接器使用 DataSourceTable 对象(参考下文)来显示提取的 BigQuery 数据。

通过 Connected Sheets 升级,从 BigQuery 源中提取的数据不再是 DataSourceTable,因此无法在录制的宏或脚本中定位。

当尝试将 BigQuery 提取的数据集作为 DataSourceTable 访问时,我收到错误消息:

代码:

  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1').activate();
  SpreadsheetApp.enableAllDataSourcesExecution();
  spreadsheet.getCurrentCell().getDataSourceTables()[0].refreshData();
  spreadsheet.getRange('D:F').activate();
  spreadsheet.getActiveSheet().getDataSourceTables().forEach(function(dataSourceTable)  dataSourceTable.waitForCompletion(300) );

错误:

TypeError: Cannot read property 'refreshData' of undefined

尝试以编程方式定义或操作 BigQuery 数据源时,我收到错误消息:

代码:

SpreadsheetApp.enableBigQueryExecution();
var spreadsheet = SpreadsheetApp.getActive();
var spec = SpreadsheetApp.newDataSourceSpec()
           .asBigQuery()
           .setProjectId('onerockwell-qa-sites')
           .setRawQuery('select * from `dw.jira_issues` limit 10')
           .build();
var dataSheet = spreadsheet.insertSheetWithDataSourceTable(spec);
var dataSourceTable = dataSheet.getDataSourceTables()[0];
dataSourceTable.waitForCompletion(60);
Logger.log("Data execution state: %s.", dataSourceTable.getStatus().getExecutionState());

错误: Exception: Not permitted to act on data sources. Please contact your G Suite administrator to enable the feature.

还有其他人经历过这种中断吗?

参考:https://developers.google.com/apps-script/reference/spreadsheet/data-source-table

【问题讨论】:

【参考方案1】:

TL;DR - Connected Sheets 无法与 Sheets Macro Recording、Apps Script 或 Sheets API 一起使用。

这正在改变:https://gsuiteupdates.googleblog.com/2020/08/connected-sheets-api-apps-script.html

从 2020 年 8 月 26 日开始,一直到 9 月。


关于我最初的问题的更多详细信息:我的域位于使用 DataSourceTables 的 BigQuery 的旧版本连接上——这确实支持宏定位和 Apps 脚本。我们自动升级到 Connected Sheets 并失去了这些能力。看来我们现在将通过上面链接的 Connected Sheets 的新升级来恢复这些功能。

【讨论】:

以上是关于连接工作表不能以宏或脚本为目标的主要内容,如果未能解决你的问题,请参考以下文章

复制工作表而不复制代码

脚本编辑器中的功能可以正常工作,但不能来自工作表自定义功能

教义 - 以表为目标的多对多

将excel工作表转换为sql脚本

自动保存 Excel 文件

水壶 '?'不工作表输入步骤