Экспорт данных в недавно созданную электронную таблицу из другой электронной таблицы - PullRequest
0 голосов
/ 08 мая 2020

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

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

Вот код:

     function NewSpreadsheets() {
  var FromDate = String(SpreadsheetApp.getActive().getRange('B3').getValue());
  var ToDate = String(SpreadsheetApp.getActive().getRange('C3').getValue());;  
  var SpreadsheetName = FromDate + ' to ' + ToDate + ' Summary';
  var NewSpreadsheet = SpreadsheetApp.create(SpreadsheetName, 101, 5);
} 

1 Ответ

0 голосов
/ 12 мая 2020

Предполагая, что вы хотите иметь 2 кнопки: одну для создания новой электронной таблицы, а другую для добавления данных из исходной электронной таблицы, вы можете использовать PropertiesService в первой функции для хранения созданной электронной таблицы ID, которая может быть извлеченным во второй:

Функция, прикрепленная к первая кнопка :

function createNewSpreadsheet() {
  var FromDate = SpreadsheetApp.getActive().getRange('B3').getValue();
  var ToDate = SpreadsheetApp.getActive().getRange('C3').getValue(); 
  var SpreadsheetName = FromDate + ' to ' + ToDate + ' Summary';
  var NewSpreadsheet = SpreadsheetApp.create(SpreadsheetName, 101, 5);
  var scriptProperties = PropertiesService.getScriptProperties();
  scriptProperties.setProperty("Copy ID", NewSpreadsheet.getId()); // Store spreadsheet ID
}

Функция, прикрепленная к второй кнопка :

function copyDataToNewSpreadsheet() {
  var scriptProperties = PropertiesService.getScriptProperties();
  var spreadsheetId = scriptProperties.getProperty("Copy ID"); // Retrieve spreadsheet ID
  var newSpreadsheet = SpreadsheetApp.openById(spreadsheetId);
  // Copy data...
}

Ссылка:

...