【发布时间】:2019-12-27 14:03:10
【问题描述】:
我有一个选择日期和时间的网络应用程序调度程序。我希望的是,在选择日期后,它将运行一个代码,该代码将检查 Google 表格中的现有数据并检查数据是否存在 3 次,如果存在限制,它将查找日期在另一张纸上,并将该行数据反映为 html 中的选择选项。
到目前为止,我只有JavaScript 的代码,它将调用一个函数并访问Google Apps Script 中的谷歌表。
对于 JavaScript:
<script>
document.getElementById("subDate").addEventListener("change",setTime);
function setTime(){
var checkVal = document.getElementById("subTime").value;
google.script.run.withSuccessHandler(onSuccess).timeCheck()
}
</script>
和 Google Apps 脚本代码来检查 google 表格中的值的限制。
对于 Google Apps 脚本:
function timeCheck(){
var ss = SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("Test_Data");
var data = ws.getRange(1, 7, ws.getLastRow(), 2).getValues();
var CheckLimitReached = function (V)
{
var records= {};
V.forEach(function (x) { records[x] = (records[x] || 0) + 1; });
var limit_reached = Object.keys(records).filter(function (R) {
return records[R] >= 3;});
return limit_reached;
};
var dataDisable = CheckLimitReached(data);
Logger.log(dataDisable);
//return dateDisable;
}
这将是日志输出:
[19-08-22 02:18:10:132 PDT] [Wed Aug 28 2019 00:00:00 GMT+0800 (HKT),8:00 AM]
这里也是谷歌表的链接: https://docs.google.com/spreadsheets/d/1lEfzjG1zzJVPMN8r-OpeZm6q9_IqSwk9DNCEY-q7ozY/edit?usp=sharing
我仍在编写代码以分别在 google 脚本的 var dataDisable 中获取日期值和时间值,以便我可以将其用作工作表 Time_Select 中的匹配值。因为正如您在日志输出中看到的那样,该值被视为数组中的一个值。
我也在尝试更改时间的选项值。例如,如果在 Test_Data 工作表中,日期 2019 年 8 月 28 日和上午 8:00 存在 3 次。我将在Time_Select 表的第一行中查找 2019 年 8 月 28 日,然后将“上午 8:00”的值更改为“不可用”,然后如果某些用户在web 应用程序,将反映的选项值是:
Not Available
9:00 AM
10:00 AM
11:00 AM
12:00 NN
提前感谢您的帮助。我真的是编程新手,所以我仍在努力。如果解释不是很清楚,我也很抱歉。我愿意回答有关该问题的所有问题,以便更清楚地说明问题。请多多包涵。非常感谢。
【问题讨论】:
标签: javascript html google-apps-script google-sheets web-applications