Я разработал панель инструментов в Google DataStudio на основе одного файла GoogleSheets.Данные, которые попадают в файл GoogleSheets, поступают из двух файлов .csv, разделенных символом «;».Эти CSV-файлы автоматически обновляются ночью и сохраняются в GoogleDrive.Для того, чтобы моя DashBoard также автоматически обновлялась на основе изменений в файлах .csv, мне нужно автоматически считывать их в файл GoogleSheets, что я делаю, вызывая запуск сценария каждую ночь после обновления .csvs ...
Поскольку я действительно не знаю, как кодировать, кроме некоторых основ, я создаю следующий скрипт из различных источников в Интернете.Приятно то, что он в основном работает:
function parseCsv(csvString, delimiter) {
var sanitizedString = csvString.replace(/(["'])(?:(?=(\\?))\2[\s\S])*?\1/g, function(e){return e.replace(/\r?\n|\r/g, ' ') });
return Utilities.parseCsv(sanitizedString, delimiter)
}
//------------------------------------------------------------
function import_Sales() {
var fileName = "exported_Sales.csv";
var searchTerm = "title = '"+fileName+"'";
var files = DriveApp.searchFiles(searchTerm)
var csvFile = "";
while (files.hasNext()) {
var file = files.next();
if (file.getName() == fileName) {
csvFile = file.getBlob().getDataAsString('ISO-8859-15');
break;
}
}
var csvData = parseCsv(csvFile,";");
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('ExportSales');
sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
}
Как уже упоминалось, я импортирую 2 разных файла .csv (поэтому есть не только функция import_sales, но и функция import_stock.
Для стокового csv все работает очень хорошо (похоже, что функция import_Sales () выше, кроме названий, конечно, выше).
Проблема, похоже, в размере моего файла sales-.csv. (23 столбца x 56.000 строк), и файл обновляется каждую ночь, когда обновляется, поэтому при попытке запустить функцию import_Sales через несколько минут я получаю сообщение об ошибке «максимальное время выполнения» ... Итак, я понимаю, что это должно иметьчто-то делать с размером .csv или функцией (будем надеяться) неэффективной, и, возможно, кто-то из вас имеет представление о том, как он может работать быстрее? Размер CSV не может быть изменен, и я не могу себе представить, что этобудет невозможно импортировать его в Google Sheets?!
Кто-нибудь знает, как я могу управлять им, чтобы получить данные изCSV в Google листы автоматически каждую ночь?Может быть, я мог бы пропустить строку, которая уже находится в файле листов Google и просто импортировать новые строки из CVS как-то?Но на этом мои знания определенно заканчиваются, поэтому я был бы рад, если бы вы, ребята, смогли мне помочь!
спасибо и поздравления!