如何使用谷歌应用程序脚本从html表中获取数据

时间:2018-02-07 13:25:32

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

我面临的问题是我如何编码。我尝试google.script.run但没有工作。当我单击Approved按钮时,该按钮将向该功能抛出数据。我不知道接下来该做什么。我不知道它是如何工作的。谢谢!

的index.html

<body>
    <div  id="tables">
      <? var data = getData();?>
      <table id="tableShift1">
      <caption >Shift1</caption>
          <th>   ID   </th>
          <th>   Ldap   </th>
          <th>   Action   </th>
        <? for (var dataList = 1; dataList < data.length; dataList++) {
             ?>
          <tr >
            <td><?= data[dataList][0] ?></td>
            <td><?= data[dataList][1] ?></td>
            <td><button onclick='google.script.run.setApproved(data[dataList][0])' id='btnLdap'>Approve</button></td>
          </tr>
        <?   
          } ?>
        </table>
    </div>
  </body>

Code.gs

function setApproved(data) {
  var ss = SpreadsheetApp.openById('17lKIhONfEeNogsBhKtGr4zVaLgH0_199-3J3-0tAdcE');
  var sheet = ss.getActiveSheet();
  var dataRange = sheet.getDataRange();
  var values = dataRange.getValues();

 var headers = values[0];
 var ldapIndex = headers.indexOf('ID'); 
 var statusIndex = headers.indexOf('approvalstatus');

 var sheetRow;

 for( var i = 1 ; i < values.length; i++ )
 {
   var row = values[i];
   if(row[ldapIndex] == data)
   { 
     sheetRow = i +1;
     break;
   }
}
 ++statusIndex;
 sheet.getRange(sheetRow, statusIndex).setValue('Approved');
}

1 个答案:

答案 0 :(得分:1)

问题出现在以下

<td><button onclick='google.script.run.setApproved(data[dataList][0])' id='btnLdap'>Approve</button>

因为,需要发送data [dataList] [0]的值。我们需要使用打印scriptlet来定义html评估时的确切值。 它应该是:

<td><button onclick='google.script.run.setApproved("<?= data[dataList][0] ?>")' id='btnLdap'>Approve</button>