我想问一下地址线中的值和我使用getId()时得到的id有什么区别。例如,对于一份文档,其getId()
值为:
t8K_TLQPmKzgB72pY4TblUg
而在地址线中,关键是:
0Amu7sNvd2IoudDhLX1RMUVBtS3pnQjcycFk0VGJsVWc
到目前为止我发现的是,当您在 base64 中编码 getId 时,您或多或少会得到地址线中密钥的最后一部分
(base64Encode(t8K_TLQPmKzgB72pY4TblUg) = dDhLX1RMUVBtS3pnQjcycFk0VGJsVWc=).
但是我仍然不知道 0Amu7sNvd2Iou
代表什么,因为我的印象是这部分在旧文档中也有所不同,因此我不能一0Amu7sNvd2Iou
开始就一直使用组合键
为什么我需要知道这一点:我的脚本使用 getId 方法,但有些用户手动填写他们的 id(他们只是从地址线的密钥中复制粘贴它)。结果是,当我尝试比较它们时,尽管它们引用的是同一个文档,但我无法匹配它们,就像它们完全不同......
非常感谢您为这个问题带来了光明
编辑@taras:我还可以使用密钥和 id 打开文档。一个文档有两种不同的ID,这很奇怪。例如,如果我想比较某人从地址行复制粘贴到文档的值是否与我打开的文件相同,即使它是同一个文件,我也不会得到正确的结果
var keyFromHeadline = "0Amu7sNvd2IoudDhLX1RMUVBtS3pnQjcycFk0VGJsVWc"
var id = SpreadsheetApp.getActiveSpreadsheet.getId();
if (keyFromHeadline==id) Browser.msgBox("blabla")
因此,我会对这两个不同值的原因以及如何匹配它们感兴趣