【问题标题】:Google Spreadsheet set unique id or metadata for cell or rowGoogle 电子表格为单元格或行设置唯一 ID 或元数据
【发布时间】:2018-02-14 13:50:39
【问题描述】:

是否可以在 Google 电子表格中为单元格或行附加一些隐藏的 ID 或元数据,以便我可以将单元格移动到工作表上的任何位置,但仍然可以从该单元格获取文本(无论它位于何处:A:2或 B:10 或 Z:955) 在我的 javascript 函数中?

我只想要这样的东西:

function getCellValueWithID(id) { // not INDIRECT('A2')
   console.log( this.val() );
}

getCellValueWithID("my_cell"); // Outputs "Hello"

【问题讨论】:

  • 你可以给单元格一个命名范围。通过范围名称而不是位置来引用单元格。
  • 从“数据”菜单中,选择“命名范围”添加一个新的范围名称。输入范围名称或使用默认值。使用代码:function getRangeByName() { var r; var r = SpreadsheetApp.getActiveSpreadsheet().getRangeByName('NamedRange1'); Logger.log(r.getValue()) } 即使单元格被移动,代码仍然会获取移动单元格中的值,因为范围名称在移动时与单元格保持一致。
  • @LioraHaydont 实际上是这样。请参阅下面的答案。

标签: javascript excel google-apps-script google-sheets spreadsheet


【解决方案1】:

是的。自 2017 年 10 月起,您可以使用以下链接中记录的开发者元数据将元数据添加到电子表格:

https://developers.google.com/sheets/api/guides/metadata

要从 Apps 脚本执行此操作,您必须利用以下链接中引用的 Advanced Sheet 服务:

https://developers.google.com/apps-script/advanced/sheets

另外,这里有一个关于这个主题的教程:

http://ramblings.mcpher.com/Home/excelquirks/totallyunscripted/sheetsdevelopermetaadv

【讨论】:

  • 我相信您不需要使用高级工作表服务从 Apps Script 中完成,您可以使用 DeveloperMetadata 类。
  • @flawyte 在我写这个答案的时候,DeveloperMetaData 类在内置的电子表格服务 (see Release Notes) 中还不可用。
  • 重要标注:在 2021 年,它仍然无法在单个单元格上设置:Exception: Adding developer metadata to arbitrary ranges is not currently supported. Developer metadata may only be added to the top-level spreadsheet, an individual sheet, or an entire row or column.(如果您在该教程中深入了解,则会提到这一点)
猜你喜欢
  • 2020-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多