使用javascript从html表单推送Google表格中的数据的最佳方式

时间:2018-02-03 21:44:44

标签: javascript html google-sheets

我有一个简单的html表单:

<label for="phone">Phone: </label> <input id="phone" type="text" /><br />
<label for="address">Address: </label><input id="address" type="text" /><br />
<button id="submit">Submit</button>

我正在尝试完成的JS代码,用于在GSheet中推送数据(我已经创建了应用程序并获得了https://script.google.com/macros/s/XXXXXXXXXXXXXXXXXXXXXXXXXXXXX/exec之类的工作链接。)

    <script>

    var submit = document.getElementById("submit");
    var sample = document.getElementById("sample");
    var clear = document.getElementById("clear");

    submit.onclick = function(){
      var phone = document.getElementById("phone").value;
      var address = document.getElementById("address").value;

    // i'm lost!

    }

    </script>

1 个答案:

答案 0 :(得分:0)

要设置电子表格中某些单元格的值,您需要首先声明变量ss以指定您正在使用的电子表格。有几种方法:

var ss = SpreadsheetApp.getActiveSheet()

如果您从电子表格中启动脚本,这将正常工作。但是,我认为脚本将由表单提交触发,在这种情况下,您需要指定电子表格的URL:

var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/ ... /edit")

接下来,指定要将结果输出到哪个工作表和范围。例如,我们假设您要将值3放入工作表A1的单元格Sheet1中,这些只是一些可能性:

ss.getRange("Sheet1!A1").setValue(3)

var sheet = ss.getSheetByName("Sheet2")

sheet.getRange("A1").setValue(3)//could use A1 notation
sheet.getRange(1, 1).setValue(3)//or could use row, column

如果您想一次设置多个单元格,请使用.setValues()而不是.setValue()并创建一个数组数组,如下所示:

var values = [[1,2],[3,4]]

sheet.getRange("A1:B2").setValues(values)
//again, could use A1 notation

sheet.getRange(1,1,2,2).setValues(values)
//this is (upmost row, leftmost column, number of rows, number of columns)

内部数组是行,因此这将设置A1:B2,如下所示:

      A     B
   +-----+-----+--
 1 |  1  |  2  |
   +-----+-----+--
 2 |  3  |  4  |  
   +-----+-----+--
   |     |     |