我发现getActiveRange(),getActiveSelection()等函数仅在脚本作为电子表格或容器扩展中的自定义函数运行时才起作用(请参阅Execution Methods for Scripts) . 我的观察是否正确?有没有办法将脚本部署为Web应用程序,使用SpreadsheetApp.openById()打开电子表格并获取有效范围/选择,假设电子表格的所有者在 Cloud 端硬盘中打开了它?
问题是我想'm making an extension for Google Spreadsheets, but for building my custom UI I don'或UI Service,我想要传统的纯HTML / JS . 因此,我在页面上渲染我的UI,在iframe中打开电子表格,然后我的UI将Google Scripts称为服务,这意味着我将脚本部署为Web应用程序(自动执行不同的电子表格任务)并使用URL参数调用它们 . 它工作正常,除了我无法获得有效范围/选择,这是我的应用程序的交易破坏者 .
1 回答
好吧,我害怕你不能,因为你的观察是正确的 .
但是,如果在主电子表格中使用第二个工作表,并且监视主工作表中的活动单元格的
onEdit()
触发器,则可能存在解决方法 . 然后外部webApp可以非常简单地轮询第二张表上的值 .这是电子表格中的(简单)代码:
一个简单的webApp,显示如下结果:
一个test sheet is here(你可以写一个"main sheet",一个包含A1表示法的"tracker sheet")和附加到它的webapp is here
我添加了一个“toast”来监视onEdit函数,仅用于测试目的