【问题标题】:How can I duplicate a sheet using apps script on the google sheets app when it opens the spreadsheet?打开电子表格时,如何使用 Google Sheets 应用程序上的应用程序脚本复制工作表?
【发布时间】:2020-06-17 22:41:55
【问题描述】:

我有一个自定义函数,可以复制电子表格中的工作表并重命名它。我尝试使用触发器 onOpen 但它在谷歌表格应用程序(android)上不起作用。我还尝试创建一个网络应用程序以使其在应用程序上执行此操作,但它也不起作用。函数如下:

function doGet() {
return HtmlService.createHtmlOutputFromFile("index.html")
    .setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

function onOpen() {

var activeSSheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = activeSheet.getSheetByName('Sheet0');

sheet.copyTo(activeSSheet).setName('Sheet1').activate();
//duplicate.setName('Sheet1');
}

以及 HTML 代码:

<!DOCTYPE html>
<html>

<head>
    <base target="_top">
    <script>
        function redirect() {
            window.open("SPREADSHEETLINK","SPREADSHEETNAME");
        google.script.run.onOpen();
    }
    </script>
</head>
<body onload="redirect()">
</body>
</html>

我在互联网上找到了这段代码并对其进行了修改。它可以在PC上运行,但在我的手机上它不起作用。我不知道这是否与应用程序本身的限制有关或与什么有关。我对编程有点陌生,所以我有点卡住了。

【问题讨论】:

  • 尝试使用可安装的 onOpen 触发器
  • 我尝试使用 onOpen 触发器。这是以前的样子,但它在应用程序中不起作用,实际上我记得当我打开它时,工作表被复制了,但后来它消失了。所以我不知道这是配置还是什么。
  • 使用可安装触发器的要点是它们能够执行需要权限的操作。简单的触发器不能。
  • 是的,我在这里检查过,我也尝试过,我再次这样做只是为了确保。所以这就是发生的事情:我在手机上打开了电子表格,由于某种原因,它反复通知我“所有文件现在都可以离线使用”。我创建了这个函数并将它添加到我的触发器中,这是一个可安装的触发器,对吧?
  • 好吧,现在我看起来更近了一点,我建议不要那样使用 onOpen。它旨在响应简单的触发器。我认为您应该使用 SpreadsheetApp.GetActive() 或 SpreadsheetApp.openById(),如果您使用的是移动设备,您可能应该通过我们的应用程序访问。

标签: google-apps-script google-sheets triggers


【解决方案1】:

您在var sheet = activeSheet.getSheetByName('Sheet0'); 中有错字,应该是 activeSSheet 并确保您确实有“Sheet0”,否则没有可复制的内容。

如果这样做,您无需从客户端致电onOpen()

喜欢:

function redirect() {
  window.open("SPREADSHEETLINK","SPREADSHEETNAME");
  // google.script.run.onOpen();
}

【讨论】:

  • 是的,我看到并更改了它,它仍然无法正常工作。 :/ 问题是它可以在 PC 上运行,但不能在移动设备上运行。
  • 你应该相应地编辑你的问题的标题
  • 是的,我尝试在描述中更好地解释它。另外,我在没有 onOpen 的情况下运行了代码,它只是重命名了当前工作表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-19
  • 1970-01-01
相关资源
最近更新 更多