首页 > 解决方案 > Google Apps 脚本:使用边栏创建新工作表

问题描述

我想用边栏在我的电子表格中创建一个新工作表。我是使用侧边栏的新手,所以我不知道该怎么做。

代码.gs:

function createSheet(sheetName) {
  var sheet = ss.getSheetByName(sheetName)  
  if (!sheet) {
    ss.insertSheet('Lookup: ' + sheetName)
  }
}

页面.html:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <h3>Create Partial Vlookup Table</h3>
    
    <input id="myData">    
    <button onclick="createLookup()">Click</button>        
    
    <script>          
      function createLookup(){
        var myData = document.getElementById('myData').value
        google.script.run.withSuccessHandler(createSheet(myData))
      }
    </script>
    
  </body>
</html>

我会很感激我能在这个问题上得到任何帮助!

标签: javascripthtmlgoogle-apps-scriptgoogle-sheets

解决方案


我相信你的目标如下。

  • 您想使用侧边栏在活动电子表格中插入新工作表。

修改点:

  • 为了在 Google Apps Script 端运行该功能,请修改google.script.run.withSuccessHandler(createSheet(myData))google.script.run.withSuccessHandler(function).createSheet(myData).
  • 在您的脚本中createSheet,似乎ss没有声明。

当你的脚本用以上几点修改时,它变成如下。

修改后的脚本:

HTML & Javascript 方面:

在这种情况下,请createLookup进行如下修改。

function createLookup(){
  var myData = document.getElementById('myData').value;
  google.script.run.withSuccessHandler(alert).createSheet(myData);  // Modified
}

Google Apps 脚本方面:

function createSheet(sheetName) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();  // Added
  var sheet = ss.getSheetByName(sheetName);
  if (!sheet) {
    ss.insertSheet('Lookup: ' + sheetName);
  }
  return "ok";  // Added
}
  • 通过上述修改,当单击侧栏上的输入值按钮时,将在活动电子表格中插入一个新工作表。并且,ok返回,您可以在浏览器的警报对话框中看到它。

  • 当你想要打开侧边栏的脚本时,下面的脚本怎么样?

      function openSidebar() {
        SpreadsheetApp.getUi().showSidebar(HtmlService.createHtmlOutputFromFile("Page"));
      }
    

参考:


推荐阅读