Как сохранить данные в реальном времени (в реальном времени) из одной вкладки в другую с помощью скрипта - PullRequest
1 голос
/ 10 июля 2020

У меня есть импорт данных в реальном времени из службы парсинга, которая импортирует все в мою таблицу Google. Однако каждый раз, когда он очищает новый набор данных, он заменяет старые данные, которые он очищал ранее. Я хотел бы скопировать все очищенные данные в новую вкладку, чтобы все записывать. Код, который я сейчас использую, не копирует мои существующие данные, и когда я тестирую его, добавляя образец набора данных для копирования, не срабатывает. Я понимаю, что мне нужно будет настроить триггер позже, чтобы обновлять sh любые новые данные - есть ли предложения?

// 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 sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet2'); 
  var state = sheet.getRange('Sheet1!A:A').getValue(); 
  var county = sheet.getRange('Sheet1!B:B').getValue(); 
  var apn = sheet.getRange('Sheet1!C:C').getValue(); 
  sheet.appendRow([state,county,apn]); 
}

1 Ответ

1 голос
/ 10 июля 2020

Попробуйте следующее:

function saveData() { 
  var ss=SpreadsheetApp.getActiveSpreadsheet(); 
  var sh2=ss.getSheetByName('Sheet2'); 
  var sh1=ss.getSheetByName('Sheet1')
  var data=sh1.getRange(1,1,sh1.getLastRow(),3).getValues(); 
  sh2.getRange(sh2.getLastRow()+1,1,data.length,data[0].length).setValues(data);
}

Если вы sh измените свою позицию на выходе, вы всегда можете использовать метод массива .map .

...