Ich tat dies eine ganze Weile her. So importiere ich Daten aus Website-Besucherprotokollen. Um sie zu überprüfen. Ich verwende keine Kommas, weil Sie sie zu oft in den Daten finden. Ich verwende stattdessen 3 Tilden '~~~' und die Zeilen werden durch einen Zeilenvorschub '\ n' getrennt. Aber ich teile im Grunde die Zeilen und dann die Felder in jeder Zeile in Array und füttere sie in die Blätter Zeile für Zeile und in der Regel habe ich mit 20 oder 30 Dateien von etwa 100K oder weniger. Und ich finde, dass es die Dateien sehr schnell lädt.
function importData1(myFolderID,myFolderName,myFileName) {
var myFolderID = typeof(myFolderID) !== 'undefined' ? myFolderID : 'FolderID';
var myFileName = typeof(myFileName) !== 'undefined' ? myFileName : '';
if(myFileName && myFolderID)
{
var fi = DriveApp.getFolderById(myFolderID).getFilesByName(myFileName); // Selected IPLogYYMMDD.txt file
var ssid = SpreadsheetApp.getActive().getId();
var ss = SpreadsheetApp.openById(ssid);
if (fi.hasNext()) // proceed if file exists in the IPlogs folder
{
var file = fi.next();
var data = file.getBlob().getDataAsString();
var lines = data.split('\n');
var newsheet = ss.insertSheet(myFolderName + '/' + myFileName);
var j=0;
for (var i=0; i<lines.length; i++)
{
var fields = lines[i].split('~~~');
if(fields.length>=8)//There's supposed to be 8 or 9 fields
{
Logger.log('i=' + i + 'fields.length=' + fields.length);
newsheet.getRange(j+1, 1, 1,fields.length).setValues([fields]);
j=j+1;
}
}
}
}
else
{
displayStatus('Error Importing Data','Either Folder or File not found in importData1');
}
Die meisten Variablen sind leicht herauszufinden. Sie werden wahrscheinlich in der Lage sein, es an das anzupassen, was Sie brauchen. Und wahrscheinlich gibt es mehrere optionale Antworten zur Auswahl.
Warum nicht 'parseCsv (csv_string [, Begrenzer])' aus dem Utilities-Dienst? Dann können Sie einfach das resultierende 2D-Array in Ihr Blatt blachen. –
Gute Idee. Wusste das nicht. Ich werde es nächstes Mal versuchen. – Cooper
Funktioniert gut! Vielen Dank – JaKre