2016-03-12 67 views
0

我有一個Google Apps腳本,用於打開並處理現有電子表格並將數據寫入JSON。這適用於Google腳本編輯器,但我無法在我將其部署爲Web應用程序時打開電子表格。如何從部署爲網絡應用程序的Google應用程序腳本打開電子表格

爲了說明我已經創造了這個簡單的測試版本:

  • 一個谷歌spreadsheet其中「任何人在互聯網上可以找到和編輯」(雖然我需要在真正的電子表格更嚴格的控制)。
  • 使用doGet部署HTML文件的Google腳本(見下文)。
  • 一個包含表單和Javascript來打開電子表格的HTML文件(見下文)。

腳本和HTML文件保存在一個Google App腳本項目中。

我以「執行應用程序爲:我」的方式發佈「部署爲Web應用程序」,併爲其提供必要的權限。

當我「測試您的最新代碼的Web應用程序」我得到HTML表單顯示。當我點擊表單上的「確定」時,我會在打開電子表格之前看到第一個提醒。

但是我在打開電子表格後從未看到過第二次提醒。嘗試打開電子表格時,頁面會重定向到空白userCodeAppPanel網址,並且不會繼續。

我猜這是與認證做?任何線索非常感謝!

的doGet谷歌應用程序腳本:

function doGet() { 
 
    return HtmlService.createHtmlOutputFromFile("opensheet.html") 
 
     .setSandboxMode(HtmlService.SandboxMode.IFRAME); 
 
}

HTML表單:

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <base target="_top"> 
 
    <script> 
 
     function getData() { 
 
      var sheetFileId = "1feVgACmd5_g9II2ll_1u7AVt8jIVg2LbKp13k8UQw6w"; 
 

 
      alert("before opening spreadsheet"); 
 
      var sheetFile = SpreadsheetApp.openById(sheetFileId); 
 
      alert("after opening spreadsheet"); 
 
     } 
 

 
    </script> 
 

 
</head> 
 

 
<body> 
 
    <p>Update web app from spreadsheet?</p> 
 

 
    <form onsubmit='getData()'> 
 
     <input type='submit' value='Go'> 
 
    </form> 
 
</body> 
 

 
</html>

回答

0

您可以使用window.open()方法在新窗口中打開電子表格。提交按鈕需要更改,以便在單擊該按鈕後不會在Web應用程序中看到空白屏幕。

<!DOCTYPE html> 
<html> 

<head> 
    <base target="_top"> 
    <script> 
     function getData() { 

      alert("before opening spreadsheet"); 
      window.open("https://docs.google.com/spreadsheets/d/1feVgACmd5_g9II2ll_1u7AVt8jIVg2LbKp13k8UQw6w/edit#gid=0","_blank"); 

      alert("after opening spreadsheet"); 
     } 

    </script> 

</head> 

<body> 
    <p>Update web app from spreadsheet?</p> 

    <form> 
     <input type='button' onmouseup="getData()" value='Go'> 
    </form> 
</body> 

</html> 
相關問題