首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google-sheets脚本使用高级google服务查找数据并在弹出消息中显示

Google-sheets脚本使用高级google服务查找数据并在弹出消息中显示
EN

Stack Overflow用户
提问于 2018-06-27 16:23:40
回答 1查看 450关注 0票数 0

我正在创建一个电子表格来记录租赁数据。

我在一张纸(Clients)上有客户信息,在另一张纸上有租赁信息:

Rental

代码语言:javascript
复制
[ID]    [Name]  [Phone] [Product Code]  [Product Name]  [Price]

Clients

代码语言:javascript
复制
[Name]      [e-mail]   [Phone]

客户端的唯一标识符是它们的电话号码。

为了方便用户,在Rental表上,接待员使用客户的名称来记录租用的设备,唯一的ID (电话号码)被用作记录中的隐藏数据。

当有多个客户具有相同的名称时,我使用带有HtmlService.createTemplateFromFileSpreadsheetApp.getUi().showModalDialog的弹出窗口,接待员可以在其中单击实际客户的电话号码。

我被困在根据getRange(SpreadsheetApp.getActiveSpreadsheet.getActiveRange.getRow(),2 ( Rental工作表上活动行的第2列)中的数据从工作表Clients中查找电话号码列表的部分。

我不能使用表单的内置功能,比如从API脚本中过滤或查询。

如果可能的话,我真的想避免将整个项目迁移到google sql数据库。

如有任何建议或建议,欢迎光临。

EN

回答 1

Stack Overflow用户

发布于 2018-06-27 18:39:19

1)定义客户端工作表的查阅字段('Name')

2)使用onEdit(e)触发器处理租用表中的编辑事件,并检查第二列(名称)是否被编辑。有关简单且可安装的触发器的更多信息

https://developers.google.com/apps-script/guides/triggers/

https://developers.google.com/apps-script/guides/triggers/installable

3)从客户端工作表的第一列(‘Name’)获取值:

代码语言:javascript
复制
 var rows = sheet.getRange(2, 1, sheet.getLastRow - 1, 1).getValues() 

并根据用户输入对其进行过滤。

代码语言:javascript
复制
    rows = rows.filter(function(row){ return row[0] == userInput });

如果返回一个以上的值,则显示弹出窗口,并将变量传递给HTML模板。更多关于如何做到这一点的信息

代码语言:javascript
复制
if (values.length > 1) { //do something }

如果您对使用GAS没有足够的信心,请参考官方文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51057981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档