我将其他服务的数据提取到Google云端硬盘。其格式为CSV,并保存在Google云端硬盘上的.csv中。每个文件的大小约为5MB和> 17K行!我尝试使用导入脚本,但它没有工作,它适用于较小的文件,但我只是想将整个csv复制到我的电子表格而不关心旧数据。
function import() {
var fSource = DriveApp.getFolderById("****"); // reports_folder_id = id of folder where csv reports are saved
var fi = fSource.getFilesByName('report.csv'); // latest report file
var ss = SpreadsheetApp.openById("***"); // data_sheet_id = id of spreadsheet that holds the data to be updated with new report data
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1")
if ( fi.hasNext() ) { // proceed if "report.csv" file exists in the reports folder
var file = fi.next();
var csv = file.getBlob().getDataAsString();
var csvData = CSVToArray(csv); // see below for CSVToArray function
for ( var i=0, lenCsv=csvData.length; i<lenCsv; i++ ) {
sheet.getRange(i+1, 1, 1, csvData[i].length).setValues(new Array(csvData[i]));
}
/*
** report data is now in 'NEWDATA' sheet in the spreadsheet - process it as needed,
** then delete 'NEWDATA' sheet using ss.deleteSheet(newsheet)
*/
// rename the report.csv file so it is not processed on next scheduled run
// file.setName("report-"+(new Date().toString())+".csv");
}
};
&#13;
答案 0 :(得分:1)
如果处理那么多行,我猜你的脚本可能会超时。您可以采取一些措施来优化代码: