我们的电子表格中包含健身房设施的成员列表。我们希望合并的是一种教练可以用iPad走动并点击一个“登记”我们会员的按钮的方式。通常会员人数很少 - 每班可能有20-30名会员。但是,我们想要一种方法来尝试让教练负责,所以如果有人没有出现3周,我们可以通过电子邮件与他们联系,询问他们去过哪里。
我已经创建了一个应该可编辑的测试电子表格。我需要一些建议帮助或编写一个执行以下操作的脚本:
我想要的是我们的教练在他们出现时可以点击的每个成员名称旁边最左边的“签到”栏中的按钮。这样做会在“总签到”列中添加+1,并使用当前日期/时间戳更新“上次签到”列。
https://docs.google.com/spreadsheet/ccc?key=0AnGxNda7E77DdHZldlhQY2hZZlNJamZ6VTZ0WUhqZXc&usp=sharing
我是Google Docs脚本的新手,所以提前感谢您提供的任何专业知识!非常感谢!
答案 0 :(得分:1)
你去吧
电子表格 https://docs.google.com/spreadsheet/ccc?key=0AvmOEVr803HMdDE5MmZXMlQ1cnpzQ21wYkNNZ19ENXc#gid=0
脚本用户界面(从塞尔说过的任何设备打开此网址。) https://script.google.com/macros/s/AKfycbxfqII2qhtctJTO1nVyLOBZJ4KxElVh8I3fTCFUR1o5R1uOUcA/exec
代码:
function doGet() {
var ss = SpreadsheetApp.openById('0AvmOEVr803HMdDE5MmZXMlQ1cnpzQ21wYkNNZ19ENXc');
var sheet = ss.getSheetByName('members');
var members = sheet.getRange(2, 1, sheet.getLastRow()-1, 1).getValues();
Logger.log(members)
var app = UiApp.createApplication().setTitle('Gym Check In');
var grid = app.createFlexTable().setId('grid');
app.add(grid);
var row = 0;
var column = 0;
for (var m in members) {
grid.setWidget(row, 0, app.createLabel(members[m]));
grid.setWidget(row, 1, app.createButton('Check In').setId(row+2).addClickHandler(app.createServerHandler('checkIn').addCallbackElement(grid)).addClickHandler(app.createClientHandler().forEventSource().setEnabled(false)));
row++;
}
return app;
}
function checkIn(e) {
var ss = SpreadsheetApp.openById('0AvmOEVr803HMdDE5MmZXMlQ1cnpzQ21wYkNNZ19ENXc');
var sheet = ss.getSheetByName('members');
var button = e.parameter.source;
sheet.getRange(button, 2).setValue(new Date());
}