2017-06-26 26 views

回答

0

这是我最近为别人做的一个脚本。我认为它获取文件夹中的文件并将它们追加到表单中,然后将旧文件重命名为filename.old,以便下次调用该函数时不会再次加载它们。

function appendingCSV() { 
    var ss=SpreadsheetApp.getActiveSpreadsheet() 
    var sht=ss.getActiveSheet(); 
    var drng = sht.getDataRange(); 
    var lastRow = drng.getLastRow(); 
    //var data = loadFile(); 
    var data = loadFiles(); 
    var dataA =Utilities.parseCsv(data); 
    if(dataA.length>0) 
    { 
    var rng = sht.getRange(lastRow + 1, 1, dataA.length, dataA[0].length); 
    rng.setValues(dataA); 
    } 
    else 
    { 
    SpreadsheetApp.getUi().alert('No Data Returned from LoadFiles'); 
    } 
} 

function loadFiles(folderID) 
{ 
    var folderID = (typeof(folderID) !== 'undefined')? folderID : 'FolderID'; 
    var fldr = DriveApp.getFolderById(folderID); 
    var files = fldr.getFiles(); 
    var s=''; 
    var re = /^.*\.csv$/i; 
    while (files.hasNext()) 
    { 
    var file = files.next(); 
    var filename = file.getName(); 
    if(filename.match(re)) 
    { 
     s+=file.getBlob().getDataAsString().split('\n').splice(1).join('n') + '\n';//this was an attempt to strip off the headers. I don't know if it worked or not. 
     //s += file.getBlob().getDataAsString() + '\n'; 
     file.setName(filename.slice(0,-3) + 'old'); 
    } 
    } 
    return s; 
} 
相关问题