从网络应用访问Google电子表格数据

时间:2017-12-28 01:31:56

标签: html google-apps-script google-sheets

我正在使用谷歌应用程序脚本,我想阅读一些电子表格值,但它不起作用。

profile.account_creation_worker_id

2 个答案:

答案 0 :(得分:0)

Google Apps脚本仅运行服务器端。将var sheet = SpreadsheetApp...置于客户端JavaScript中是行不通的,因为执行JavaScript的浏览器不知道SpreadsheetApp是什么。您可以从网页上调用Apps脚本,但这需要工作。有两种情况。

HTML页面由来自Apps脚本的HtmlService提供

对于Google Apps脚本HTML service投放的HTML页面,Google提供

  

Class google.script.run(客户端API)
  google.script.run是HTML服务页面中可用的异步客户端JavaScript API,可以调用服务器端的Apps脚本功能。

HTML页面可以是

<html>
  <head>
    <script>
      var data = google.script.run.accessSpreadsheet();
      // do something to display data 
    </script>
  </head>
  <body>
  </body>
</html>

上述客户端脚本调用您的Apps脚本功能,如下所示:

function accessSpreadsheet() { 
  var sheet = SpreadsheetApp....
  // open sheet, get data 
  return data
}

您自己的HTML网页

您可以尝试将Apps脚本部署为提供数据的Web应用程序,并让您的客户端脚本向Web应用程序发送XHR请求,将数据作为JSONP获取。见this answer

答案 1 :(得分:0)

或者,如果需要,有一种方法可以在不使用GAS的情况下从电子表格中获取数据。下面是一个使用jQuery并将表单作为JSON获取的示例。

var firstSheet = () => {
  var spreadsheetID = "SPREADSHEET_ID";
  var url = "https://spreadsheets.google.com/feeds/list/" + spreadsheetID +"/1/public/values?alt=json";
  return new Promise((resolve,reject)=>{
    $.getJSON(url, (data)=>{
        let result = data.feed.entry
        resolve(result)
   });
  })
}

firstSheet().then(data => {
  console.log(data)
})

为此,您需要“发布”工作表。 File =&gt;发布到网络... =&gt;发布。此外,还需要将工作表设置为链接可以查看的任何人。