首页 > 解决方案 > 使用来自 HTML 服务的数据填充 Google 表格

问题描述

我正在创建一个带有链接 HTML 文件的 Google 表格,供用户轻松创建和计划商务旅行行程。我需要做的是从 HTML 文档中获取信息,并在单击按钮时填充谷歌工作表上的某些单元格。

这是我的 HTML 文档的简化版本:

      <div id = "sortable" class="ui-state">

        <div class = "sortableItem day">Monday</div>
         <div class = "sortableItem swapable ui-state-default" id="result1">Meeting1</div>
         <div class = "sortableItem swapable ui-state-default" id="result2">Meeting2</div>
         <div class = "sortableItem swapable ui-state-default" id="result3">Meeting3</div>
         <div class = "sortableItem swapable ui-state-default" id="result4">Meeting4</div>
         <div class = "sortableItem swapable ui-state-default" id="result5">Meeting5</div>

 <button class="btn btn-success btn-lg center-block" id="click">Update itinerary</button>
</div>

我编写了代码,以便可以通过拖放更改会议顺序。一旦行程安排正确,用户应该点击按钮,它应该用新的会议顺序更新谷歌表格(单元格 A2:A5)。

我有一个数组变量,当单击按钮时,我使用新的会议顺序更新如下:

  var newOrder = [];

  $("#click").click(function(){
  for(var i=0; i <= 5; i++) {
  newOrder.push(sortable.children[i].innerHTML)
  }
})

这部分工作正常,因为当我提醒 newOrder 时,数组显示正确。但是我如何在 Google Sheet 端访问这个数组来更新单元格呢?

标签: jqueryhtmlarraysgoogle-apps-script

解决方案


在你的 HTML Button 中onClick()调用这个: onClick="google.script.run.withSuccessHandler(saved()).yourServerFunction(this.form)"

HTML 示例,

<form class="form-style-7" id="myForm">
<ul>
<li>
    <label for="inbox">Inbox Filter</label>
    <input type="text" id="inboxVal" name="inboxVal" maxlength="100">
    <span>Enter Inbox Search Criteria Here</span>
</li>
<li>
    <input type="button" value="Create Rule"  onClick="google.script.run.withSuccessHandler(saved()).processForm(this.form)">
</li>
</ul>
</form>
 <script>
 function saved()
 {
  //Some Activity
 }
 </script>

saved()如果您想在提交函数后执行任何操作,则会在您的 HTML 页面上调用这里。

在服务器端(即在 Appscript 中)编写如下所示的普通函数,

function yourServerFunction(myForm) {
  Logger.log("INFO:       Processing values: "+myForm.inboxVal);
}

推荐阅读