Записать данные в ячейку последней строки с текстом (вместо appendRow) - PullRequest
0 голосов
/ 25 мая 2019

Я использую ярлыки Siri для ввода данных с помощью скриптов Google на лист Google. Я нашел способы добавить данные, но он использовал appendRow, который добавляет данные в новую строку.

Я запускаю 2 сценария, один из которых добавляет данные в первые три столбца новой строки.

Я хочу, чтобы следующий скрипт записывал данные в следующие 2 столбца, вместо того, чтобы начинать с новой строки, но я понятия не имею, как это сделать.

Я абсолютно не знаю, что я делаю, я очень плохо знаком с кодированием, поэтому мне искренне жаль за все проблемы.

Я искал и наткнулся на сценарии, чтобы найти последнюю строку, содержащую данные, но я не знаю, как добавить к ней данные.

Я нашел эту страницу, но понятия не имею: Определение последней строки в одном столбце

Это код, который я использую для добавления данных в первые 3 столбца в новой строке:

var ss = SpreadsheetApp.openById("").getSheetByName('');


function doGet(e) {

  var mood = JSON.parse(e.parameters.mood)

  var formattedTime = Utilities.formatDate(new Date(), "GMT+530", "h:mm a");
  var formattedDate = Utilities.formatDate(new Date(), "GMT+530", "MM/dd/yyyy");

 ss.appendRow([formattedDate,formattedTime,mood]);

}

1 Ответ

0 голосов
/ 25 мая 2019

Существуют различные способы достичь того, что вам нужно, один из них - создать настраиваемую функцию, которая вставляет данные в последнюю строку на листе:

/**
 * Gets Sheet by its name from a Spreadsheet (by id);
 * @param {String} id Spreadsheet's id;
 * @param {String} name Sheet name;
 * returns {Sheet} this sheet;
 */
function getSheet(id,name) {
  var ss = SpreadsheetApp.openById(id);
  var sh = ss.getSheetByName(name);
  return sh;      
}

//test function;
function testInsert() {
  var sh = getSheet('yourSpreadsheetId','yourSheetName');
  var data = [1,2,3,4,5,7]; //an array of values;
  insert(sh,data,1);
}

/**
 * Inserts values to the last row;
 * @param {Sheet} sheet to use;
 * @param {Array} array of values to set;
 * @param {Integer} startCol column to start from;
 */
function insert(sheet,data,startCol) {
  var lrow   = sheet.getLastRow();
  var lrange = sheet.getRange(lrow,startCol,1,data.length)
  lrange.setValues([data]);
}
...