使谷歌脚本更新HTML

时间:2014-02-06 12:20:46

标签: javascript html google-apps-script

我正在尝试创建一个阅读电子表格的Google脚本,然后将这些信息发送到简单的HTML,但我不知道如何将收集在Google脚本上的信息发送到java脚本。

以下是代码:

Google脚本

function doGet() {
  return HtmlService.createHtmlOutputFromFile('index');
}

    function getUserName() {
  var ss = SpreadsheetApp.openById("1MRr0iZJoK-mfzIM6nMgycAg8BpPOCt3X-ndwYPZ3BeA").getActiveSheet();
  var lastRow = ss.getLastRow();
  var range = ss.getRange(2, 1, lastRow);
  var Names = range.getValues();
  return Names;
}

HTML和JavaScript

<script>
  function createPost() {
    var name[] = google.script.run.getUserName();
    var Post_area = document.getElementById('post_area');
    for(var i=0; i < qnt; i++){
      var element = document.createElement("div");
      element = div.innerHTML ='<img src="' + img[i] + '" alt="' + name[i] + '" id="image"><p"' + name[i] + '"></p>';
      Post_area.appendChild(element);
    }
    return 0;
  }
</script>

<section>
  <article id="post_area">
  </article>
</section>

谢谢!

1 个答案:

答案 0 :(得分:4)

这里有一点democode

代码是你的,几乎没有修改:

function doGet(e) {
  return HtmlService.createHtmlOutputFromFile('index');
}

function getUserName() {
  var ss = SpreadsheetApp.openById("0Ao02g19G1-G-dDF1M3MyMDJWODlFMkV4N1hDWThWZEE").getSheetByName("peoples")
  var lastRow = ss.getLastRow();
  var range = ss.getRange(2, 1, lastRow, 2);
  var Names = range.getValues();
  return Names;
}

和index.html页面:

<script>
  window.addEventListener('load', function() {
    google.script.run.withSuccessHandler(createPost).getUserName();
  });

  function createPost(name) {
    name = name || google.script.run.getUserName();
    var Post_area = document.getElementById('post_area');
    Post_area.innerHTML="";
    for(var i in name){
      var element = document.createElement("div");
      element.innerHTML ='<img src="' + name[i][0] + '" alt="' + name[i][1] + '" id="image"><p>&nbsp;' + name[i][1] + '</p>';
      Post_area.appendChild(element);
    }
    return 0;
  }
</script>

<section>
  <div> <h3>Starwar peoples</h3></div>
  <article id="post_area">Loading....
  </article>
  <div> spreadsheet ref <a href="https://docs.google.com/a/ousset.net/spreadsheet/ccc?key=0Ao02g19G1-G-dDF1M3MyMDJWODlFMkV4N1hDWThWZEE&usp=drive_web#gid=1">here</a></div>
</section> 

我改变了什么:

在index.html页面中我添加了window.addEventListener('load',function(){google.script.run.withSuccessHandler(createPost).getUserName();});,因此它可以在脚本和页面中加载代码。

然后在您的代码中,我改变了调用电子表格数据的方式,因为您只调用一列(我需要两列数据来显示名称和网址)。 在页面的JS代码中,您引用了从未声明过的img[i]。 我还为element = div.innerHTML更改了element.innerHTML并更改了for循环(因为我更喜欢按照我的方式进行操作,因为您对未声明的变量进行了循环)。
嗯,我认为这就是全部 祝你的其余代码好运。