如何使用Google Apps脚本正确写入Google电子表格?

时间:2017-06-04 21:00:26

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

我正在创建一个包含表单的网页,我必须将数据发送到Google电子表格。 I found a good code searching this site但我不知道如何编辑它以将我的数据存储在Google电子表格中。

我的表单是这样制作的

<form name="reqForm" id="reqForm" method="get" action="SCRIPT" accept-charset="UTF-8">
            <input type="hidden" name="reqID" id="reqID" />
            <label for="name">Name:</label>
               <input type="text" name="Name" id="Name"/>
            <label for="surname">Surname:</label>
               <input type="text" name="surname" id="surname"/>
            <label for="SERIAL">Serial:</label>
               <input type="text" name="serial" id="serial"/>
            <label for="email">E-mail:</label>
               <input type="text" name="email" id="mail"/>
            <label for="text">Request:</label>
               <textarea id="text"></textarea>
               <input type="submit" value="Send" />
</form>

脚本是相同的,从我链接的示例(我刚刚因为错误而更改了函数名)

function doPost(e){

   var id = "";
   var name = e.parameter['name'];
   var surname = e.parameter['surname'];
   var serial = e.parameter['serial'];
   var eMail = e.parameter['email'];
   var text = e.parameter['text'];
   var date = new Date();
   var ans = ""
   var flag = "WIP";

   var vals = [id, date, name, surname, serial, eMail, text, ans, flag];

  var sheetObj = SpreadsheetApp.openById("myKey").getSheetByName('Requests').appendRow(vals);
  // return ContentService.createTextOutput(e);

}

如果我以这种方式填写表格:

  • 姓名:John
  • 姓:Doe
  • 序列号:123456
  • 电子邮件:123@456.com
  • 要求:您好

在我的电子表格中,我按以下顺序查看数据: [DATE] [Serial] [Mail] [Name] [Surname]

如何修改函数以我可以决定的某种顺序将我的数据放入电子表格中?

[更新] :我更新了代码:结果是一行正确排序,但填充了“未定义”......

1 个答案:

答案 0 :(得分:2)

提交表单后,您可以使用e.parameter[<parameter_name>]获取表单参数。

例如获取姓氏,

var surname = e.parameter['surname'];

要在Google电子表格中插入表单数据,

var sheetObj = SpreadsheetApp.openById("myKey").getSheetByName("sheetname");
//Here you can shuffle the order of values anyway you want.
sheetObj.appendRow([DATE, Serial, Mail, Name, Surname]);
//or you can do it like this
sheetObj.appendRow([DATE, Mail, Name, Surname, Serial]);

希望这有帮助。