Сохранение нескольких результатов значений массива из getValues ​​для последующего использования в скрипте Google (скрипт приложений) - PullRequest
0 голосов
/ 08 мая 2020

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

Я создаю листы do c, которые вычисляют и генерирует котировки для моего друга trad ie. Каждый раз, когда он вычисляет цитату в таблице, я хочу сохранить все данные + вспомнить их позже. В другом случае он введет новые значения в ячейки и захочет снова сохранить все с новым идентификатором цитаты и значениями из той же таблицы.

Фактически, мне нужна сохраненная копия значений, которые могут затем быть отозванным по конкретному идентификатору позже, если он захочет «регенерировать» эту цитату ..

В принципе, у меня есть 3 массива + 3 отдельные ячейки, для которых я хочу получить все значения (эта часть прибита)

// custom menu function
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Custom Menu')
      .addItem('Save Data','saveData')
      .addToUi();
}
// function to save data
function saveData() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var writesheet = ss.getSheetByName("Saved Quotes");
  var houselabour = ss.getRange("Calculating the Quote!A7:B38").getValues();
  Logger.log(houselabour);
  var tradelabour = ss.getRange("Calculating the Quote!E7:F38").getValues();
  var materials = ss.getRange("Calculating the Quote!H7:K38").getValues();
  var quoteid = ss.getRange('Calculating the Quote!B2').getValue();
  var surname = ss.getRange('Calculating the Quote!B1').getValue();
  var datecreated = ss.getRange('Calculating the Quote!C2').getValue();

  var s1 = houselabour.toString();
  var s2 = tradelabour.toString();
  var s3 = materials.toString();
  writesheet.appendRow([quoteid,surname,datecreated,s1+s2+s3]);
}
//function to recall data
function recallData()
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var activequoteid = ss.getActiveCell("Customers").getValue();
  //input values from saved data (by quoteid) into Calculating the Quote Spreadsheet... ???

В идеале я бы ввел эти значения (quoteid, surname, datecreated) на новый лист (лист записи), а затем преобразовал данные массива в строку, чтобы я мог ввести их в одну ячейку (эту ячейку не нужно читать, просто повторно вызовите, чтобы заполнить исходную таблицу позже)

Позже я хочу вспомнить те же значения, которые я изначально извлек обратно в исходный генератор цитат - " Вычисление листа с расценками.

2 вещи: возможно ли вместо преобразования трех массивов, которые у меня есть, в строки, просто зарегистрировать их где-нибудь, не обязательно отображая th em в листе где угодно? Важно, чтобы код, который запускается в раскрывающемся меню, выбрав «сохранить данные», сохранял данные массива, а затем при следующем запуске он не заменял исходный, а сохранял как другой

У меня есть несколько решений в моей голове 1) назовите каждый результат функции сохранения данных чем-то уникальным (сохраненным в виде массива) ... - я не знаю, как это сделать! - если я нигде не распечатываю, то где это go ???

2) добавить строку в таблицу сохранения котировок со строкой вместо массива, затем при вызове данных с новой функцией , преобразовать объект из .getValues ​​- я тоже не знаю, как это сделать

... Я также чувствую, что есть очень простое решение, которое мне просто не хватает.

Ваша помощь очень ценится

...