0

我从使用UrlFetchApp.fetch的url请求生成的csv文件生成数据并使用记录器存储它们。有没有写从记录仪获取的数据中的每一行成不同的行中的电子表格记录器值到行

的方式感谢您的任何想法

回答

0

我这个相当长的一段前一样。这就是我如何从网站访问者日志导入数据。审查它们。我不会使用逗号,因为您经常在数据中找到它们。我使用3个波浪线'~~~',而线则用换行符'\ n'分隔。 但我基本上分割线,然后将每行的字段放入数组中,并将它们一次一行地输入到工作表中,通常我会处理大约100K或更少的20或30个文件。我发现它很快加载文件。

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'); 
    } 

大部分变数很容易弄清楚。你可能会适应你的需要。可能会有几个可供选择的答案供您选择。

+0

为什么不使用Utilities服务中的'parseCsv(csv_string [,delimiter])'?然后,您可以将生成的二维数组放入工作表中。 –

+0

好主意。不知道这一点。我会在下次尝试。 – Cooper

+0

工程太棒了!谢谢 – JaKre