SpreadsheetApp.getActiveSpreadsheet()正在破解脚本 [英] SpreadsheetApp.getActiveSpreadsheet() is breaking script

查看:355
本文介绍了SpreadsheetApp.getActiveSpreadsheet()正在破解脚本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



可能是错误的吗?

  function onScrapeClick(){

//停用按钮
this.disabled = true;

//获取电子表格
var sheet = SpreadsheetApp.getActiveSpreadsheet();
this.innerHTML =点击;
var data = sheet.getDataRange()。getValues();




按钮被禁用,因为 this.disabled = true; 与预期一致,因此lister工作正常。

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



在一些 Code.gs 文件中:

  function getSheetData()
{
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var data = sheet.getDataRange()。getValues();
返回数据;
}

而在html脚本中:

 函数onScrapeClick(){

//禁用按钮
this.disabled = true;

//获取电子表格

this.innerHTML =Clicked;
google.script.run
.withSuccessHandler(
函数(数据,元素){
//执行数据时执行代码
//接收到的数据(b

$ b $)
.withFailureHandler(
function(msg,element){
//如果数据没有得到,则执行代码ok
})
.getSheetData();

}


I'm writing my 1st google app script. Spreadsheet opens a sidebar in onOpen(). Sidebar has Button and in SidebarJavaScript.html I have listener to that button. I'm calling SpreadsheetApp.getActiveSpreadsheet() inside listener and after this line script is not executing.

What could possibly be wrong here?

function onScrapeClick(){

    // Disable Button
    this.disabled = true;

    // Get Spreadsheet
    var sheet = SpreadsheetApp.getActiveSpreadsheet();
    this.innerHTML ="Clicked";
    var data = sheet.getDataRange().getValues();

}

Button is getting disabled as for line this.disabled = true; as expected so lister is working properly for sure.

解决方案

You must define the method to get data in a .gs file and call it with google.script.run.

In some Code.gs file:

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

And in the html script:

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();

}

这篇关于SpreadsheetApp.getActiveSpreadsheet()正在破解脚本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆