0

Ich ziehe Daten aus csv-Datei generieren nach URL-Anfrage mit UrlFetchApp.fetch und speichern sie mit Logger. Gibt es eine Möglichkeit jede Zeile von abgerufenen Daten aus Loggers in getrennten Reihen in Tabelle zu schreibenLogger-Werte in Zeilen

Danke für alle Ideen

Antwort

0

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.

+0

Warum nicht 'parseCsv (csv_string [, Begrenzer])' aus dem Utilities-Dienst? Dann können Sie einfach das resultierende 2D-Array in Ihr Blatt blachen. –

+0

Gute Idee. Wusste das nicht. Ich werde es nächstes Mal versuchen. – Cooper

+0

Funktioniert gut! Vielen Dank – JaKre