Добавить в последнюю строку, начиная с определенного столбца

#javascript #google-apps-script #google-sheets

Вопрос:

У меня есть написанный код code.gs из сценария приложения Google, подобного этому

 function enterAmount(inputInfo){
  var url = 'https://docs.google.com/spreadsheets/d/1bM8l6JefFsPrlJnTWf56wOhnuSjdIwg3hMbY1tN1Zp8/edit#gid=1151242353';
  var ss = SpreadsheetApp.openByUrl(url);
  var ws = ss.getSheetByName("Payment Configuration");
  
  var repeatedPayment = ( inputInfo.amount / 50 );
  for(var i = 50; i <= repeatedPayment; i  ){
           ws.appendRow([inputInfo.uname,inputInfo.pm_hseno,inputInfo.streetName]);
  }
}
 

Функция работает нормально, но я просто хочу добавить информацию, начиная с столбца E. Я не хочу, чтобы он следовал за последней колонкой всего листа. Кто-нибудь может помочь мне изменить код? Заранее спасибо.

Комментарии:

1. Из вашего ответа на Okay I explain clearly from beginning. I actually wanted the code to copy the username, house number and street to the google sheet in worksheet "Payment Configuration" from the column E. I give the link to my web app now. I have used my coding first to let you understand how I expected the things to be. The username is going to be Username : Mathavan Password : Apple so after logging in you enter 16.jlnsanggul4. After you click submit, you can increase the payment by 50. Let say the payment now I specified into RM 100 so it should copy username, housenumber and street.

2. и And if it is RM 100, it will copy twice the username, house number and street to my google sheet. Have I made my self clear now , к сожалению, я не могу понять вашу ситуацию. Так что в данном случае мой ответ может оказаться бесполезным для вашей ситуации. Таким образом, на данном этапе я хотел бы удалить свой ответ. Когда я смогу правильно понять ваш вопрос и смогу найти решение, я хотел бы ответить на него.

3. И по поводу вашего дополнительного ответа Sorry about the new question. I am quite rushing to complete my project. But I really apologize for what I have done. , я понял I am quite rushing to complete my project. . В этом случае я думаю, что, возможно, не смогу решить ваш вопрос в ближайшее время. Это связано с моим плохим мастерством. Я глубоко извиняюсь за это. Я думаю, что мне нужно больше учиться.

4. @Tanaike Нет, нет. Пока что только ты помогаешь мне, спасибо тебе за помощь, которую ты мне сейчас оказываешь. Да, я тороплюсь, но я не буду тебя принуждать. Я стараюсь делать это здесь, в то же время я хотел бы услышать от вас также, как у вас на самом деле есть опыт. Я многое узнал о google appscript из вашего GitHub. Это было действительно полезно для меня. Так что, если вы тоже можете мне помочь, пожалуйста.

5. Не могли бы вы, пожалуйста, пояснить, почему ответ Танайке не работает для вас? Подумайте о предоставлении копии электронной таблицы, над которой вы работаете (без конфиденциальной информации), где четко указан желаемый результат.

Ответ №1:

Если вы хотите добавить строку на основе последней строки в столбце E, вы можете использовать getRange() в последнем столбце и getDataRegion() вместо этого.

Хотя я не уверен, для чего предназначен ваш цикл for.

 function enterAmount(inputInfo){
  var url = 'your URL';
  var ss = SpreadsheetApp.openByUrl(url);
  var ws = ss.getSheetByName("Payment Configuration");
  var lastRow = ws.getRange("E1").getDataRegion().getLastRow()   1;

  
  var repeatedPayment = ( inputInfo.amount / 50 );
  ws.getRange(lr,1,1,3).setValues([[inputInfo.uname,inputInfo.pm_hseno,inputInfo.streetName]]);

 
}