如何在 Google App 脚本中存储每月的数据?

问题描述 投票:0回答:1

我有一个应用程序脚本,它设置为触发器,以在每月 1 日自动发送统计信息。我目前使用 PropertiesService() 类以名称值对的形式存储数据。 我需要存储的变量如下

  • 总推荐量
  • 入学已完成
  • 返还摄入量
  • 已完成与已返回

这是一个编码示例:

const scriptProperties = PropertiesService.getScriptProperties(); scriptProperties.setProperties({ 'month': monthName, 'totalReferrals': totalReferrals, 'intakesComplete': intakesComplete, 'ssmReturns': ssmReturns, 'completedVsReturned': completedvsReturnedFormatted });

我这样提取数据:

const userProperties = PropertiesService.getScriptProperties(); const units = userProperties.getProperty('totalReferrals'); console.log('values of units %s', units);

它记录得很好。当该月第一天发送电子邮件时,如何保存上个月(例如:9 月)的数据,并提取该数据以发送 10 月的新统计数据。目标是将这两个月放在一起进行比较。它提取的数据不断变化,10 月 1 日的数据到 10 月 2 日会有所不同。

javascript google-apps-script google-sheets-formula
1个回答
0
投票

使用今天的日期作为顶级键并对其余值进行字符串化:

const dateAsStr = Intl.DateTimeFormat('en-US').format(new Date());
const scriptProperties = PropertiesService.getScriptProperties(); 
scriptProperties.setProperty(dateAsStr, JSON.stringify({ 'month': monthName, 'totalReferrals': totalReferrals, 'intakesComplete': intakesComplete, 'ssmReturns': ssmReturns, 'completedVsReturned': completedvsReturnedFormatted }));

要检索,

/*Oct 1 2024 date key*/
const date20241001AsStr = Intl.DateTimeFormat('en-US').format(new Date(2024,09/*month starts from 0*/,1 ));
const scriptProperties = PropertiesService.getScriptProperties(); 
const storedData = JSON.Parse(scriptProperties.getProperty(date20241001AsStr));
© www.soinside.com 2019 - 2024. All rights reserved.