Javascript 通过可编辑的html表格编辑Google工作表数据

Javascript 通过可编辑的html表格编辑Google工作表数据,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我试图通过html表编辑google工作表数据,我已成功更新了html表中的数据,但无法编辑html表和google工作表中的相同数据 HTMLoutput表中的谷歌表单数据为: function list(){ var percentiles = SpreadsheetApp.openByUrl(url).getSheetByName("Advance").getRange(2,3).getValues(); var rawScores = SpreadsheetApp.

我试图通过html表编辑google工作表数据,我已成功更新了html表中的数据,但无法编辑html表和google工作表中的相同数据

HTMLoutput表中的谷歌表单数据为:

   function list(){
    var percentiles = SpreadsheetApp.openByUrl(url).getSheetByName("Advance").getRange(2,3).getValues();
    var rawScores = SpreadsheetApp.openByUrl(url).getSheetByName("Advance").getRange(2,4).getValues(); 
    var input = rawScores.indexOf(console);
    Logger.log(input); 
    function map(input) {   
      for (var i = 0; i <rawScores.length; i++) {
        if (rawScores[i] >= input) {
           return percentiles[i];
         }
       }
     } 
   }
函数列表(){
var percentiles=SpreadsheetApp.openByUrl(url).getSheetByName(“高级”).getRange(2,3).getValues();
var rawScores=SpreadsheetApp.openByUrl(url).getSheetByName(“Advance”).getRange(2,4).getValues();
var输入=rawScores.indexOf(控制台);
Logger.log(输入);
函数映射(输入){
对于(变量i=0;i=input){
返回百分位数[i];
}
}
} 
}
下面是我用来更新HTMLtable的脚本:-

<script>   
   document.addEventListener('DOMContentLoaded', function() {
   google.script.run.withSuccessHandler(generate).getTable();

   });

   function generate(dataArray){
   var tbody = document.getElementById("table-body");
   dataArray.forEach(function(r){
   var row =document.createElement("tr");
   var col1 =document.createElement("td");
   col1.textContent = r[0];
   var col2 =document.createElement("td");
   col2.textContent = r[1];
   var col3 =document.createElement("td");
   col3.textContent = r[2];
   var col4 =document.createElement("td");
   col4.textContent = r[3];
   var col5 =document.createElement("td");
   col5.textContent = r[4];
   var col6 =document.createElement("td");
   col6.textContent = r[5];
   var col7 =document.createElement("td");
   col7.textContent = r[6];
   var col8 =document.createElement("td");
   col8.textContent = r[7];
   var col9 =document.createElement("td");
   col9.textContent = r[8];
   var col10 =document.createElement("td");
   col10.textContent = r[9];

   row.appendChild(col1);
   row.appendChild(col2);
   row.appendChild(col3);
   row.appendChild(col4);
   row.appendChild(col5);
   row.appendChild(col6);
   row.appendChild(col7);
   row.appendChild(col8);
   row.appendChild(col9);
   row.appendChild(col10);
   tbody.appendChild(row);
   });
   }




</script>

document.addEventListener('DOMContentLoaded',function(){
google.script.run.withSuccessHandler(generate.getTable();
});
函数生成(数据数组){
var tbody=document.getElementById(“表体”);
dataArray.forEach(函数(r){
var行=document.createElement(“tr”);
var col1=document.createElement(“td”);
col1.textContent=r[0];
var col2=document.createElement(“td”);
col2.textContent=r[1];
var col3=document.createElement(“td”);
col3.textContent=r[2];
var col4=document.createElement(“td”);
col4.textContent=r[3];
var col5=document.createElement(“td”);
col5.textContent=r[4];
var col6=document.createElement(“td”);
col6.textContent=r[5];
var col7=document.createElement(“td”);
col7.textContent=r[6];
var col8=document.createElement(“td”);
col8.textContent=r[7];
var col9=document.createElement(“td”);
col9.textContent=r[8];
var col10=document.createElement(“td”);
col10.textContent=r[9];
行。追加子行(col1);
行。追加子行(col2);
第行。追加子项(col3);
第行。追加子行(col4);
行。追加子行(col5);
第行。追加子行(第6列);
第行。追加子行(col7);
第8行为appendChild(col8);
第行。追加子行(第9列);
第行。追加子行(第10列);
tbody.appendChild(世界其他地区);
});
}
Google Sheets表只能通过应用程序脚本功能在服务器端更新。 我假设您正在使用Web应用程序

您可以使用从项目的
HTML
文件调用应用程序脚本函数

样本:

  • 定义变量
    dataArray
<script>
  ...
  google.script.run.updateTable(dataArray);
  ...
</script>
function updateTable(dataArray){
  var myValues=[];
  myValues[0]=[];
  for(var i=0; i<dataArray.length;i++){
    myValues[0][i]=dataArray[i];
  }
  var myRow=SpreadsheetApp.openByUrl(url).getSheetByName("MY SHEET").getRange("The Range Of My Row"); // e.g. getRange(1,1,1,10); to obtain the first 10 columns of the first row
  myRow.setValues(myValues);
}