Во-первых, этот код делает именно то, что мне нужно для решения одной проблемы: если для перемещения слишком много данных, Google отключается и завершает процесс. Если честно / прозрачность, я полный нуб-код сценария, так что я могу упустить что-то действительно простое. Из того, что я могу сказать, этот код стекирует данные строка за строкой, и, если строк слишком много, это и есть моя разбивка. Есть ли причина, почему нужно просто выбрать все данные и вставить все данные? Спасибо за вашу помощь!
function importDataCDOP() {
var fSource = DriveApp.getFolderById('FILE PATH');
var fi = fSource.getFilesByName('xxxx.csv');
var ss = SpreadsheetApp.openById('FILE PATH');
if ( fi.hasNext() ) {
var ss1 = SpreadsheetApp.getActiveSpreadsheet();
var first = ss.getSheetByName('NEWDATA');
var file = fi.next();
var csv = file.getBlob().getDataAsString();
var csvData = CSVToArray(csv);
var newsheet = ss.getSheetByName('NEWDATA');
var destSheet = ss.getSheetByName('NEWDATA');
var lastRow = destSheet.getLastRow();
destSheet.insertRowAfter(lastRow);
for ( var i=0, lenCsv=csvData.length; i<lenCsv; i++ ) {
destSheet.getRange(lastRow + i + 1, 1, 1, csvData[i].length).setValues(new Array(csvData[i]));
}
file.setName("OP report-"+(new Date().toString())+".csv");
}
};
function CSVToArray( strData, strDelimiter ) {
strDelimiter = (strDelimiter || ",");
var objPattern = new RegExp(
(
"(\\" + strDelimiter + "|\\r?\\n|\\r|^)" +
"(?:\"([^\"]*(?:\"\"[^\"]*)*)\"|" +
"([^\"\\" + strDelimiter + "\\r\\n]*))"
),
"gi"
);
var arrData = [[]];
var arrMatches = null;
while (arrMatches = objPattern.exec( strData )){
var strMatchedDelimiter = arrMatches[ 1 ];
if (
strMatchedDelimiter.length &&
(strMatchedDelimiter != strDelimiter)
){
arrData.push( [] );
}
if (arrMatches[ 2 ]){
var strMatchedValue = arrMatches[ 2 ].replace(
new RegExp( "\"\"", "g" ),
"\""
);
} else {
var strMatchedValue = arrMatches[ 3 ];
}
arrData[ arrData.length - 1 ].push( strMatchedValue );
}
return( arrData );
};