Google лист импортирует выбранные столбцы из CSV - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь импортировать только несколько столбцов из CSV в листе Google. Мой CSV огромен (26 тыс. Строк), и мне нужно только 4 столбца из 32 импортируемых. Следующий скрипт (который я нашел на форуме) используется для импорта CSV в GoogleSheet:

function importReport() {

  var threads = GmailApp.search('label:stock_fastmag subject:"Rapport de commande - article detail - TOTAL"');
  var message = threads[0].getMessages()[0];
  var attachment = message.getAttachments()[0];
  attachment.setContentType('text/csv');

 // Is the attachment a CSV file
 if (attachment.getContentType() === "text/csv") {

    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Reliquat_commandes_clients");
    var csvData = Utilities.parseCsv(attachment.getDataAsString(), ";");

  // Remember to clear the content of the sheet before importing new data
   sheet.clearContents().clearFormats();
   sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);

  }
}

Проблема в том, что, поскольку скрипт не может работать полностью, авторизованное время выполнения слишком короткое. Как вы думаете, если я импортирую только некоторые столбцы CSV, это должно сделать это быстрее?

1 Ответ

0 голосов
/ 25 января 2019

Скорее всего, запись на лист занимает больше времени. Я настроил простой тест с собственным файлом CSV с 50000 строками и 32 столбцами, каждая ячейка которого содержит строку из 8 символов. Это чуть меньше 50 МБ, предел для DriveApp, чтобы открыть файл.

Открытие и анализ файла заняли 12 секунд. Открытие, анализ и запись на лист заняли 200 секунд. Извлечение только 4 необходимых столбцов и запись на лист заняли всего 34 секунды, поэтому ограничение того, что вы пишете, определенно является способом повышения производительности.

Мне не удалось создать ситуацию, в которой я превысил максимальное время выполнения из-за ограничения размера файла с помощью DriveApp, но, похоже, это хороший метод для решения этой проблемы: Превышено максимальное время выполнения в Google Apps Script .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...