我正在创建一个电子表格以记录租赁数据。
我在一张纸上(Clients
有客户信息,而在另一张纸上有出租信息:
Rental
。
[ID] [Name] [Phone] [Product Code] [Product Name] [Price]
Clients
:
[Name] [e-mail] [Phone]
客户的唯一标识符是他们的电话号码。
为方便用户使用,在Rental
页上,接待员使用客户端的名称记录所租用的设备,并且唯一ID(电话号码)用作记录中的隐藏数据。
当有多个具有相同名称的客户端时,我使用带有HtmlService.createTemplateFromFile
和SpreadsheetApp.getUi().showModalDialog
的弹出窗口,接待员可以在其中单击所涉及的实际客户端的电话号码。
我被困在这一部分,在那里我根据Clients
({{1上的活动行的第二列)中的数据,从工作表getRange(SpreadsheetApp.getActiveSpreadsheet.getActiveRange.getRow(),2
中查找电话号码列表。 }}表。
我无法使用工作表的内置功能,例如Filter或通过API脚本查询。
如果可能的话,我真的想避免将整个项目迁移到google sql数据库。
任何建议或指示都值得赞赏。
答案 0 :(得分:0)
1)定义“客户”工作表(“名称”)的查找字段
2)使用onEdit(e)触发器来处理“租借”工作表中的编辑事件,并检查第二列(名称)是否已被编辑。有关简单和可安装触发器的更多信息
https://developers.google.com/apps-script/guides/triggers/
https://developers.google.com/apps-script/guides/triggers/installable
3)从“客户”表的第一列(“名称”)中获取值:
var rows = sheet.getRange(2, 1, sheet.getLastRow - 1, 1).getValues()
并根据用户输入对其进行过滤。
rows = rows.filter(function(row){ return row[0] == userInput });
如果返回的值大于1,则显示弹出窗口,并将变量传递给HTML模板。
if (values.length > 1) { //do something }
如果您对使用GAS不够自信,请参阅官方文档。