【问题标题】:Getting Google Apps Scripts to Run on Mobile让 Google Apps 脚本在移动设备上运行
【发布时间】:2018-06-17 06:21:38
【问题描述】:

我正在尝试获取我为 Google 工作表制作的脚本,以便在打开工作表时触发(因为我发现您无法通过移动应用手动触发它们)。不知何故,我设法让一半的脚本工作,而另一半却没有。该脚本适用于桌面和移动设备,我希望它清除一组预定的单元格范围,同时隐藏一组预定的行和列(出于格式化目的)。该脚本可以在桌面上完美运行,但该脚本的 clearRanges 部分无法在移动设备上运行,即使该脚本的 hideRows/Columns 部分可以。关于为什么会这样的任何想法?我正在使用的功能如下所示:

function onOpen() {
//Create custom menu options
SpreadsheetApp.getUi().createMenu('Invoicing')
    .addItem("Clear Data", "clearRange")
    .addItem("Submit", "sendEmailWithPdfAttach")
    .addToUi()

//Clear ranges
var source = SpreadsheetApp.getActiveSpreadsheet();
source.getRange('A23:A40').clearContent();
source.getRange('H6:I6').clearContent();
source.getRange('H8:I8').clearContent();
source.getRange('F13:F13').setValue('FALSE');
source.getRange('F15:F15').setValue('TRUE');
source.getRange('D19:I19').clearContent();
source.getRange('D23:G23').clearContent();
source.getRange('D31:G31').clearContent();
source.getRange('A42:I44').clearContent();
source.getRange('B24:G25').clearContent();
source.getRange('B28:G29').clearContent();
source.getRange('B32:G33').clearContent();
source.getRange('B35:G40').clearContent();
source.getRange('H24:H29').clearContent();
source.getRange('H32:H33').clearContent();
source.getRange('H35:H39').clearContent();

//Hide rows/columns
var sheets = source.getSheets();
sheets.forEach(function (s, i) {
    if (i == sheetNum) {
        s.hideRows(45, 400);
        s.hideColumns(10, 17);
    } else {
        s.hideSheet();
    }
});    
}

自定义菜单选项供桌面使用,可以忽略。我还要说这是我第一次真正使用 Apps Script,并且大部分代码都是从其他地方获取并修改的。如果你们对我能做什么有任何线索,我全神贯注。谢谢

【问题讨论】:

  • Google Apps 脚本在服务器端运行,因此在桌面/移动设备/等设备上的工作方式应该相同。我可能认为问题出在其他地方
  • 你是如何从手机触发的。手机只支持onEdit()
  • 我猜它可能根本没有真正运行,并且行和列在桌面上以前使用时被隐藏了。使用onEdit() 实现这一点的最佳方法是什么?
  • 请查看this。我想它解决了问题。

标签: mobile google-apps-script google-sheets google-sheets-api


【解决方案1】:
  • 有一个简单的解决方案,你可以在你的 main 上创建一个按钮 电子表格并将其与脚本链接!

  • 在移动版 Google Chrome 上打开同一张工作表

  • 在最右上角,单击三个点。一个下拉菜单 菜单打开
  • 选择“以桌面模式查看”。
  • 注意,您的电子表格的按钮现在是可点击的,作为工作表 解释要登录到 PC 的用户
  • 现在,只需单击按钮,让脚本发挥作用

【讨论】:

  • 它曾经对我有用,但下一次它只由谷歌驱动应用程序打开,因为我将 Firefox 作为移动设备上的默认浏览器。哦,好吧..这种其他方法帮助了我code.luasoftware.com/tutorials/google-apps-script/…
  • @miodf,该文档虽然令人印象深刻,但非常乏味且不完全是用户友好的。一个简单的技巧可能是在默认浏览器(firefox)上打开工作表,单击三个点,然后选择页面选项。新菜单打开。现在选择“将页面添加到快捷方式”。此选项会在您的手机上添加类似应用程序的链接。因此您不再需要在云端硬盘上打开同一个应用
  • 感谢您的帮助。 ;) 我已经尝试过你的解决方案。唉,它对我不起作用(因为我无法编辑单元格或从按钮运行 GAS)可能是因为我已经用函数实现了我的建议?以下是一些可能对其他人有所帮助的提示(不保证!):复制/粘贴 Google Drive 网址 (drive.google.com/drive/my-drive) 并从中找到您的 Google 表格(或将直接 Google 表格网址复制到我电脑上的新 gmail 电子邮件中然后将其粘贴到 Firefox(或 Chrome)中)...
  • ...强制刷新浏览器缓存:在 Firefox 中按重新加载按钮(或长按重新加载按钮)。或在 Chrome 中 android.stackexchange.com/a/207511/144093 希望这对某人有所帮助。 ;)
【解决方案2】:

SpreadsheetApp.getUi() 不适用于 Google 表格移动应用。另一种方法是为 Google 表格创建 Android 插件。很遗憾,目前不支持 Google 表格的其他移动平台插件。

相关问答

堆栈溢出

Web 应用程序 SE

【讨论】:

    猜你喜欢
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-26
    相关资源
    最近更新 更多