当此工作表复制到新工作表时,有没有办法链接一些工作表数据?



我正在构建一个 Google 表格插件,它将一些信息显示在工作表中,并通过PropertiesService将数据保存到文档存储中。我知道如果我想将数据与新工作表复制/链接,则无法检查工作表何时被复制。我听说并读到了DeveloperMetadata.但没有意识到:当源工作表复制到新工作表时,每个工作表DeveloperMetadata是副本吗?我试了试,看到了,没有。

那么,对吗?如果"是",在这种情况下,每个文档使用PropertiesService和每个工作表使用DeveloperMetadata没有区别吗?

UPD:(大约DeveloperMetadata(

我创建了一个新的电子表格并写入脚本编辑器 2 函数:

function showAllMetadata()
{
var allSheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var allDeveloperMetadata = allSheets.map(function(sheet){
return {
id:       sheet.getSheetId(),
name:     sheet.getName(),
metadata: sheet.getDeveloperMetadata().map(function(meta){ return meta.getValue() })
}
});
Logger.log(JSON.stringify(allDeveloperMetadata));
}
function addMetadataToCurrentSheet()
{
SpreadsheetApp
.getActiveSheet()
.addDeveloperMetadata('metadata', 'foo');
showAllMetadata();
}

然后我做了:

  1. addMetadataToCurrentSheet()
[{"id":0,"name":"Sheet1","metadata":["foo"]}]
  1. 通过单击"复制"按钮复制此工作表
  2. showAllMetadata()
[
{"id":0,"name":"Sheet1","metadata":["foo"]},
{"id":1107155653,"name":"Copy of Sheet1","metadata":[]}
]

但我期待看到

[
{"id":0,"name":"Sheet1","metadata":["foo"]},
{"id":1107155653,"name":"Copy of Sheet1","metadata":["foo"]}
]

汇总收到的信息:

每张纸DeveloperMetadata将一张纸与其存储联系起来,如果我们想复制这张纸及其元数据并执行以下操作:

  1. 复制电子表格 - 元数据存在
  2. 通过Copy to按钮或通过copyTo方法复制工作表 - 元数据存在
  3. 通过Duplicate按钮复制工作表 - 元数据不存在

希望Duplicate按钮将来能够正常工作。

相关内容

最新更新