谷歌电子表格脚本:如何保存“;永远”;

Google Script for Spreadsheet : How to keep value saved for "ever"?

本文关键字:保存 永远 脚本 电子表格 何保存 谷歌      更新时间:2023-09-26

我正在为电子表格构建一个Google脚本,该脚本查询一个外部API,每次查询时都需要付款。

我希望我的脚本在内存中保留值,如果它已经加载(意味着如果我没有更改该脚本使用的其他单元格),以避免每次加载页面时查询API。

我考虑过使用Cache,尤其是CacheService.getDocumentCache(),但它不是一个长期存储。

还有更好的选择吗?

您可以将电子表格本身用作长期存储。保存所使用的参数和返回值,并在每次查询外部API之前进行检查。

如果数据不多,属性服务可能也适合您。但如果数据"太多",它就不会起作用。嗯,即使是电子表格也有一些限制。在这种情况下,您可以尝试使用Google Drive中的常规文件作为存储或通过JDBC使用外部数据库。

但如果你需要达到目标,你的脚本可能会开始达到其他应用程序脚本配额,这可能会阻止你使用它。

比SpreadsheetApp快一点的是在Google Drive中保存为JSON:

function saveFile(){
  var transactions = {'ben@gmail.com ': 1238190238, 'dora@gmail.com' : 1238190238, 'ksd@gmail.com' : 1238190238};
  return DriveApp.createFile('Transactions', JSON.stringify(transactions ));
}
function getFile(){
  var file = DriveApp.getFilesByName('Transactions').next();
  return JSON.parse(file.getAs("application/none").getDataAsString());
}