基于大表(2000+行)的自动完成

时间:2015-06-24 05:00:44

标签: google-apps-script google-sheets

使用Google Spreadsheets时,如果您希望在基于一系列值的单元格上使用验证,则可以获得非常好的自动完成功能,使数据输入更加出色。

我最常见的应用是类似库存的情况,我通过某种哈希码或部件号引用库存物品。我经常使用的哈希是专注于我的大脑,但是当我需要一个新的部分或者我需要一个旧版本的变体时,我想要一些帮助以确保我选择了正确的部分#。

我总是发现我需要额外的行上下文与我的自动完成,所以现在我想我想制作一个侧栏插件,它有更智能的搜索规则,还包括更多的上下文数据,以确保我有#I的意思。一旦我确定部件#,一个按钮就可以将选定的结果推送到当前活动的行。

这个解决方案比数据验证有点“重”,但它完全符合我的要求。

假设我的广告资源来源是另一个电子表格,设置我的Addon-Script项目的好方法是什么?

我在想我的侧边栏会调用一个HtmlService函数,该函数利用缓存服务来保存我的“哈希列表”和内存中的一些上下文。我不认为我正在研究一个沉重的jQuery解决方案(仅在我输入时构建自动完成对话框),但这实际上就是这个问题的全部目的!

关于高级项目概述的任何想法?我对Apps Scripts一般都很陌生,特别是因为新的API自2013年开始推出。

1 个答案:

答案 0 :(得分:2)

我使用我的预算表完成了这一点,当组合数量从500跳到2.500时,从数据验证转移到Jquery的自动填充,并且它快了很多,搜索速度比自动化更快100 itens,我使用的逻辑:

数据库: 它的基础数据在电子表格中,每次更新时,都会有一个OnEdit函数,它将在几分钟内触发数据库更新,这样该函数就不会在不受欢迎的情况下运行。几次同样的编辑。 然后,数据库以JSON格式存储在Google Drive上的简单文本中,它是使用DriveApp.getFileById(id).setContet(JSON.stringify(myJsonDataFromSpreadsheet))从电子表格数据生成的2MB文件,文件生成和保存最多需要30秒,文件读取大约为4秒

侧栏: 建立一个普通的HTML - 记住使用IFRAME选项 - 并提供服务,这完全在文档中,您必须通过google.script将数据从HTML发送到GoogleScript(例如,要插入的部分#)。运行,并使用SuccessHandler和google.script.run获取数据(例如包含所有部件号的文件)。

主要功能参考:
https://developers.google.com/apps-script/guides/html/reference/run https://developers.google.com/apps-script/guides/dialogs#custom_sidebars https://developers.google.com/apps-script/reference/drive/file - >首先使用DriveApp.getFileById(id)获取文件。