SpreadsheetApp.getActiveSpreadsheet()正在打破脚本

时间:2015-06-04 18:51:01

标签: google-apps-script google-sheets

我正在撰写我的第一个谷歌应用脚​​本。电子表格会在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;,因此lister工作正常。

2 个答案:

答案 0 :(得分:1)

您必须定义方法以获取.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();

}

答案 1 :(得分:0)

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

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