2015-06-04 63 views
0

我在寫第一個Google應用腳本。電子表格在onOpen()中打開邊欄。補充工具欄有按鈕,並在SidebarJavaScript.html我有監聽該按鈕。我打電話給SpreadsheetApp.getActiveSpreadsheet()裏面的監聽器,並且在這行腳本沒有執行之後。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;

+0

你似乎是混合客戶端和服務器端的代碼。 innerHTML意味着在客戶端上執行處理表單的代碼是服務器端。一些教程可能是爲了。如果沒有看到你的代碼的全部,就幾乎不可能解決你的問題。 – ScampMichael

回答

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

} 
0

的GetValues是表類的方法,你只需要定義活動工作表

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

我試過了。即使在該行腳本被破壞之後。在這一行後,我試圖改變按鈕文本,它不工作。 –