【发布时间】:2021-01-15 09:52:33
【问题描述】:
我创建了一个网络应用程序来跟踪我公司员工的工作时间,该网络应用程序很简单,它首先要求他们提供用户名和密码,然后允许他们注册他们的进入时间退出时间。我的老板还问我是否有一种方法可以让员工查看他们最近 3 次注册是什么,以防他们可能忘记记录进入或退出时间。所以我需要做的是在接收数据的工作表中查找每个员工的特定姓名/ID,然后在 Web 应用程序的“最后注册”部分下打印该数据。
这是一个最小的可重现示例,它只询问一个名称,在数据库中查找该名称,然后允许您发送您的提交,同时带上提交的时间戳。我需要看到的是如何在“ReceivedData”的数据库中查找该人的姓名(来自网络应用程序上的早期注册)以及如何将该提交的时间戳带到“最后注册部分”。这也是一个包含一些数据的电子表格,您可以在其中工作。 (https://docs.google.com/spreadsheets/d/1CJoPuq3sHE5L31GwlvS4Zygm1sL3M0HGC7MgW3rCq3g/edit#gid=0)
抱歉,描述太长了,谢谢。
var name="";
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('Form');
}
function AddRecord(Name) {
// get spreadsheet details
var url = 'https://docs.google.com/spreadsheets/d/1CJoPuq3sHE5L31GwlvS4Zygm1sL3M0HGC7MgW3rCq3g/edit#gid=0';
//Paste URL of GOOGLE SHEET
var ss1= SpreadsheetApp.openByUrl(url);
var webAppSheet1 = ss1.getActiveSheet();
const Lrow = webAppSheet1.getLastRow();
const data = [Name, new Date ()];
webAppSheet1.getRange(Lrow+1,1, 1, data.length).setValues([data])
}
function checkLogin(Name) {
var url = 'https://docs.google.com/spreadsheets/d/1CJoPuq3sHE5L31GwlvS4Zygm1sL3M0HGC7MgW3rCq3g/edit#gid=0';
//Paste URL of GOOGLE SHEET
var ss2= SpreadsheetApp.openByUrl(url);
var webAppSheet2 = ss2.getSheetByName("DataBase");
var getLastRow = webAppSheet2.getLastRow();
var found_record = '';
for(var i = 1; i <= getLastRow; i++)
{
if(webAppSheet2.getRange(i, 1).getValue() == Name)
{
found_record = 'TRUE';
}
}
if(found_record == '')
{
found_record = 'FALSE';
}
return found_record;
}
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script>
function AddRow()
{
var Name = document.getElementById("Name").value;
google.script.run.AddRecord(Name);
document.getElementById("Name").value = '';
}
function LoginUser()
{
var Name = document.getElementById("Name").value;
google.script.run.withSuccessHandler(function(output)
{
if(output == 'TRUE')
{
document.getElementById("loginDisplay").style.display = "none";
document.getElementById("dataDisplay").style.display = "block";
}
else if(output == 'FALSE')
{
document.getElementById("errorMessage").innerHTML = "Name not found";
}
}).checkLogin(Name);
}
</script>
</head>
<body>
<div id="loginDisplay">
<div>
<label>Name</label><br>
<input type="text" id="Name" />
</div>
<div class="btn">
<input value="Login" onclick="LoginUser()"
type="button">
<span id="errorMessage"></span>
</div>
</div>
<div style="display:none" id="dataDisplay">
<div>
<label>Last Registrations</label>
<br><br>
<button type="button" value="Add" onclick="AddRow()">Send</button>
</div>
</div>
</body>
</html>
【问题讨论】:
-
您需要在您的链接上提供公共访问权限
-
对不起,我忘了。
标签: javascript html google-apps-script google-sheets