Google 工作表将值记录到行中

Google Sheets Logger values into rows

我正在使用 UrlFetchApp.fetch 从 URL 请求后生成的 .csv 文件中提取数据,并使用记录器存储数据。

有没有办法将从记录器获取的每一行数据写入电子表格中的单独行?

我很久以前就做过这个。这就是我从网站访问者日志中导入数据的方式。审查他们。我不使用逗号,因为您在数据中经常会发现它们。我改用 3 个波浪号“~~~”,各行用换行符“\n”分隔。 但我基本上将行和每行上的字段拆分为数组,然后将它们一次一行地输入到工作表中,通常我处理 20 或 30 个大约 100K 或更小的文件。而且我发现它加载文件的速度非常快。

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

大部分变量都很容易弄清楚。您可能可以根据需要调整它。并且可能会有几个可选答案供您选择。