谷歌表格-电子表格应用程序.getactivespreadsheet()是打破脚本



我正在写我的第一个谷歌应用程序脚本。电子表格在onOpen()中打开一个边栏。侧边栏有按钮和在SidebarJavaScript.html我有侦听器的按钮。我在监听器中调用SpreadsheetApp.getActiveSpreadsheet(),在这行之后脚本没有执行。

这里可能出了什么问题?

function onScrapeClick(){
    // Disable Button
    this.disabled = true;
    // Get Spreadsheet
    var sheet = SpreadsheetApp.getActiveSpreadsheet();
    this.innerHTML ="Clicked";
    var data = sheet.getDataRange().getValues();
}

按钮被禁用,因为行this.disabled = true;如预期的那样,所以列表工作正常。

您必须定义在.gs文件中获取数据的方法,并使用google.script.run调用它。

在某些Code.gs文件中:

function getSheetData()
{
   var sheet = SpreadsheetApp.getActiveSpreadsheet();
   var data = sheet.getDataRange().getValues();
   return data;       
}

在html脚本中:

function onScrapeClick(){
  // Disable Button
  this.disabled = true;
  // Get Spreadsheet
  this.innerHTML ="Clicked";
  google.script.run
    .withSuccessHandler(
      function(data, element) {
        // code to execute if data was gotten ok
        // the received data is in data argument
      })
    .withFailureHandler(
      function(msg, element) {
        // code to execute if data was not gotten ok
      })
    .getSheetData();
}

getValues是工作表类的一个方法,您只需要定义活动的工作表

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();

最新更新