Javascript 使用偏移函数追加行以将数据填充到正确的单元格

Javascript 使用偏移函数追加行以将数据填充到正确的单元格,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我正在尝试从Google web应用程序中填充数据并从Google工作表中获取数据。 到目前为止,它正在做它打算做的事情。 但问题是我不想把数据拿到最后一行;相反,我希望将数据放入选定的行和列 这是密码 代码.gs function doGet(e){ Logger.log(e.parameter); return HtmlService.createTemplateFromFile("form").evaluate(); } function formSbmt(

我正在尝试从Google web应用程序中填充数据并从Google工作表中获取数据。 到目前为止,它正在做它打算做的事情。 但问题是我不想把数据拿到最后一行;相反,我希望将数据放入选定的行和列

这是密码

代码.gs

function doGet(e){

 Logger.log(e.parameter);
 return HtmlService.createTemplateFromFile("form").evaluate();


}

function formSbmt(formInfo){
 var url = "https://docs.google.com/spreadsheets/d/1c4K-kkzxJPDiCYS4xcD2X7rKR8c_9pYqp9N4vtEEybE/edit#gid=0";
 var ss = SpreadsheetApp.openByUrl(url);
 var ws = ss.getSheetByName("Sheet1");

 ws.appendRow([null,null,formInfo.orderDate,null,null,formInfo.orderNo,formInfo.orderSrc]);

}

function include(filename){
 return HtmlService.createHtmlOutputFromFile(filename).getContent();


}
HTML


订单
订购日期
网站订单
来源
纳吉
贾杰
FJ
提交
我通过创建一个include函数来分离Javascript

脚本js

<script>

      document.getElementById("btn").addEventListener("click",sclicked);

      function sclicked(){
        var formInfo = {};

         formInfo.orderDate = document.getElementById("odate").value;
         formInfo.orderNo = document.getElementById("onum").value;
         formInfo.orderSrc = document.getElementById("wsrc").value;


         google.script.run.formSbmt(formInfo);
         document.getElementById("odate").value = "";
         document.getElementById("onum").value = "";
         document.getElementById("wsrc").value = "";


      }
      
      
    </script>

document.getElementById(“btn”)。addEventListener(“单击”,单击);
函数sclicked(){
var formInfo={};
formInfo.orderDate=document.getElementById(“odate”).value;
formInfo.orderNo=document.getElementById(“onum”).value;
formInfo.orderSrc=document.getElementById(“wsrc”).value;
google.script.run.formSbmt(formInfo);
document.getElementById(“odate”).value=“”;
document.getElementById(“onum”).value=“”;
document.getElementById(“wsrc”).value=“”;
}
问题是它正在填充最后一行上的数据。但是我已经在0列和1列中有了一些数据,以此类推

我想把数据放在第552行、第2列、第5列和第6列,以此类推,列除外

PS:我的工作表中确实有模式列,我需要以相同的形式填充这些列,只是想在完成整个工作表之前尝试使用一些列

说明: 根据C列获取最后一行内容,并从C列开始粘贴

  • 这种方法假设C列之间没有空白单元格,并且值从单元格C1开始
解决方案: 更改:

 ws.appendRow([null,null,formInfo.orderDate,null,null,formInfo.orderNo,formInfo.orderSrc]);
 var cLength = ws.getRange("C1:C").getValues().filter(String).length;
 var data = [formInfo.orderDate,null,null,formInfo.orderNo,formInfo.orderSrc];
 ws.getRange(cLength+1,3,1,data.length).setValues(data);
至:

 ws.appendRow([null,null,formInfo.orderDate,null,null,formInfo.orderNo,formInfo.orderSrc]);
 var cLength = ws.getRange("C1:C").getValues().filter(String).length;
 var data = [formInfo.orderDate,null,null,formInfo.orderNo,formInfo.orderSrc];
 ws.getRange(cLength+1,3,1,data.length).setValues(data);

我粘贴了你的代码,它返回了nothing@AliAhmed我将重复已经在我的答案中的内容,但只是强调一下。1) C列有空白单元格吗?2) 这些值是从Column C中的第1行开始还是从其他行开始?或者,提供您的工作表副本(删除敏感信息),以便我可以查看您的工作表。正如您所理解的,如果您看不到工作表,则很难提供答案。我会更新工作表的链接。我真的很感谢您的帮助。@AliAhmed在脚本编辑器中,代码与您的问题无关。你能更新代码吗?更新了代码。很抱歉,我对所有这些都不熟悉。当您说“我想将数据放入选定的行和列”时,您的意思是将数据放入工作表中当前选定的任何行吗?例如,如果选择了
D3
,数据将写入
C3
F3
G3
?另外,脚本是否在电子表格中?不,我想按顺序进行,但在第一个数据的特定行之后开始,然后它将按顺序进行,这意味着什么?你想用空的C,F,G单元格写入第一行吗?不。我想从第523行开始,每个新记录都用空的C,F,G单元格。我不清楚你想完成什么。请考虑扩大你的描述。