Замените Google Sheet с помощью скрипта Apps, сохранив тот же идентификатор файла - PullRequest
1 голос
/ 21 апреля 2020

Я экспортирую два csv-файла с сервера SQL в папку на Google Диске, используя File Stream, данные которого мне затем нужно перенести в Google Sheet (без установки общих настроек публикации на c).

Процесс, который я имею в виду:

  1. Экспорт файлов CSV в файловый поток (F1.csv & F2.csv) - РАБОТА
  2. Преобразование файлов CSV в Google Sheets с использованием скрипта приложения (F1.gheet & F2.gsheet) - РАБОТА *
  3. Использование = IMPORTRANGE в моем главном Google Sheet (Tool.gheet) для импорта F1.gsheet & F2.gheet в свои собственные листы в этой книге

Проблема, с которой я сталкиваюсь, заключается в том, что два CSV-файла будут экспортироваться и загружаться ежедневно. Я могу конвертировать их отлично, но они получат новые идентификаторы файлов, что нарушает шаг 3.

Что я хочу сделать, это заменить F1.gsheet & F2.gsheet на содержимое новых F1.csv & F2.csv , так что их идентификаторы файлов остаются неизменными, а Tool.gsheet извлекает новые данные.

Я посмотрел Как автоматически импортировать данные из загруженного файла CSV или XLS в Google Sheets , но это очень медленно, мне просто нужно иметь возможность использовать что-то похожее на функцию ревизии файлов Google, но с помощью скрипта Google Apps.

Любая помощь будет очень признательна!

1 Ответ

1 голос
/ 21 апреля 2020

Невозможно присвоить новому листу идентификатор старого листа, но вместо этого вы можете работать с индексами

Пример:

function moveSheet() {
  var ss =  SpreadsheetApp.getActive();
  var newSheet = SpreadsheetApp.getActive().insertSheet();
  var desiredIndex = 1
  ss.setActiveSheet(newSheet);
  ss.moveActiveSheet(desiredIndex);
  ss.getSheets()[desiredIndex].getName();
  Logger.log(newSheet.getName()+ "is the same as "+  ss.getSheets()[desiredIndex].getName());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...