Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 无法将developerMetadata添加到行_Google Apps Script_Google Sheets_Metadata - Fatal编程技术网

Google apps script 无法将developerMetadata添加到行

Google apps script 无法将developerMetadata添加到行,google-apps-script,google-sheets,metadata,Google Apps Script,Google Sheets,Metadata,我需要以编程方式将信息与Google工作表中的一行相关联,并且用户交互最少。即使在上面添加或删除了一行,关联也必须与同一行保持关联。此外,如果行为空,则应删除该信息 对我来说,这听起来像是DeveloperMetadata的工作 我希望现在不用API就可以这样做,以避免添加更多变量。在使用API之前,我会先使用命名范围 无论如何,电子表格、工作表和范围类都有一个方法:addDeveloperMetadata,它有各种输入——没有一个有DeveloperMetadataLocationType输入

我需要以编程方式将信息与Google工作表中的一行相关联,并且用户交互最少。即使在上面添加或删除了一行,关联也必须与同一行保持关联。此外,如果行为空,则应删除该信息

对我来说,这听起来像是DeveloperMetadata的工作

我希望现在不用API就可以这样做,以避免添加更多变量。在使用API之前,我会先使用命名范围

无论如何,电子表格、工作表和范围类都有一个方法:addDeveloperMetadata,它有各种输入——没有一个有DeveloperMetadataLocationType输入(问题#1)

有趣的是,正如答案所示,以下代码确实向列添加了开发人员元数据:

var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange("H:H").addDeveloperMetadata("columnName", "price");
然而,我一辈子都不知道如何创建一个“行”范围来添加元数据。我尝试了以下方法:

var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(1, 1, 1, sheet.getMaxColumns()).addDeveloperMetadata("rowStatus", "processing");

其中L是最后一列

在这两种情况下,我都会得到以下错误:

当前不支持将开发人员元数据添加到任意范围 支持。开发人员元数据只能添加到顶层 电子表格、单个工作表或整行或整列


有没有办法表明一个范围是一行,这样我就可以向它添加元数据了?

我一发布这个问题,就找到了答案

var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange("2:2").addDeveloperMetadata("rowStatus", "processing");

通过假装创建条件格式规则找到答案,并在指示范围时选择行号,以查看Google Sheets A1符号如何表示行。

这很有趣。为什么要将信息隐藏起来而不是存储在注释或单元格中?单元格值、注释和注释都很重要,还有其他原因-我需要一些超级程序的元数据,我不想让用户分心。
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange("2:2").addDeveloperMetadata("rowStatus", "processing");