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');
}
大部分变量都很容易弄清楚。您可能可以根据需要调整它。并且可能会有几个可选答案供您选择。
我正在使用 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');
}
大部分变量都很容易弄清楚。您可能可以根据需要调整它。并且可能会有几个可选答案供您选择。