如何使用HTML表单中的值在电子表格中设置值?

时间:2012-09-15 16:26:33

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

我正在撰写Google Apps Scripts网络应用程序(带有电子表格)

我想从HTML表单中获取值并在电子表格中设置一个值。

我写了这段代码,但似乎没有用。有没有人知道为什么?

来源 - code.gs

function doGet() {
  var output = HtmlService.createTemplateFromFile('test');
  return output.evaluate();
}

function getMsgs(){
  var db = ScriptDb.getMyDb();
  var result = db.query({type:'msgdata'}).sortBy('num', db.DESCENDING, db.NUMERIC);
  return result;
}

function processForm(form){
  var db = ScriptDb.getMyDb();
  var n = db.query({type:'msgdata'}).getSize();
  var obj = {type:'msgdata',msg:form.text1,num:n};
  db.save(obj);
  var result = db.query({type:'msgdata'}).sortBy('num', db.DESCENDING, db.NUMERIC);
  var str = "";
  while(result.hasNext()){
    str = str + '<li>' + result.next().msg + '</li>';
  }
  var sheet = SpreadsheetApp.getActiveSheet();
  var result = db.query({type:"msgdata"});
  var i = 2;
  while(result.hasNext()){
    var data = result.next();
    sheet.getRange(i,2).setValue(data.msg);
    i++;
  }


  return str;
}

来源 - test.html

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type"content="text/html; charset=utf-8">
<title>Sample jsp</title>
<style>
h1 {font-size:16pt; background:#AAFFAA;padding:5px;}
p {margin:10px;}
</style>
<script>
function onSuccess(res){
  var list = document.getElementById("list");
  list.innerHTML = res;
 }
</script>
</head>
<body>
<h1>Sample jsp page</h1>
<form id='myForm' onsubmit="javascript:return false;">
    <input type='text' name='text1'>
    <input type='button' value='click' onclick='google.script.run.withSuccessHandler(onSuccess).processForm(this.parentNode)'>
  </form>
  <hr>
  <ul id="list">
<?
var res = getMsgs();
while(res.hasNext()){
output.append('<li>' + res.next().msg + '</li>');
}
?>
</ul>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

我刚刚回答了类似的问题:

“google.script.run.function” not passing values from htmlservice

它可能对你有帮助。