将Google Apps脚本实施为HTML

时间:2016-09-23 11:50:50

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

我想从HTML文件中调用Google表格。 这可以通过文档(https://developers.google.com/apps-script/guides/html/templates)来实现:

<body>
    <? var data = SpreadsheetApp
        .openById('1234567890abcdefghijklmnopqrstuvwxyz')
        .getActiveSheet()
        .getDataRange()
        .getValues(); ?>    </body>

当我加载HTML文件时,它确实有效并捕获值。 我需要做的是 - 我想在for循环中的Spreadsheet中设置值,该循环由一个按钮激活。

function processForm() {

var elementsNr = document.getElementsByName("nummerierung")
var elements = document.getElementsByName("schuelername")
var elementsDate = document.getElementsByName("datuminput")
var elementsArt = document.getElementsByName("art")
var elementsZeit = document.getElementsByName("zeit")

for (var i = 0; i < elements.length; i++) {
    var Nr = elementsNr[i].value;
    var sname = elements[i].value;
    var datum = elementsDate[i].value;
    var Uart = elementsArt[i].value;
    var UZeit = elementsZeit[i].value;

     var data = SpreadsheetApp
                   .openById('1MWy0J5ZKnsXXKWEX72Bh9cRBvsFkDAqTEhW1SxFavmA')
                   .getActiveSheet()
                   .getDataRange(sheet.getLastRow()+1, 1, 1, 5)
                   .getValues([[Nr, datum, sname, Uart, UZeit]]); 
}

但不知怎的,我得到了一个引用错误:

  

ReferenceError:未定义SpreadsheetApp

:(

任何?

1 个答案:

答案 0 :(得分:1)

所引用的文档是关于模板化HTML的,但问题中显示的代码并未使用模板化HTML语法。另一方面,Best Practices doc建议异步加载数据。

要从客户端JavaScript(HTML文件上的脚本)调用服务器端的Apps Scripts函数,首先在.gs文件上创建一个函数,然后使用google.script.run <从HTML调用它。 / p>

有关代码示例,请参阅answer DanielSpreadsheetApp.getActiveSpreadsheet() is breaking script

顺便说一下,getDataRangegetValues不应该有参数。