【发布时间】:2019-11-01 19:39:50
【问题描述】:
今天,当我在 Google 表格中列出 Google Drive 文件夹的名称和文件时,我使用了这个脚本:
function listFolderContents() {
//Squads
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('Import!A3:B').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
var foldername = 'My Files';
var folderlisting = 'listing of folder ' + foldername;
var folders = DriveApp.getFoldersByName(foldername)
var folder = folders.next();
var contents = folder.getFiles();
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
var file;
var name;
var link;
var row;
while(contents.hasNext()) {
file = contents.next();
name = file.getName();
link = file.getUrl();
sheet.appendRow( [name, link] );
}
spreadsheet.getRange('Files!Q3:R').activate();
spreadsheet.getRange('Import!A3:B').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
spreadsheet.getRange('Import!A3:B').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
};
发生的情况是,使用这种方法,每个名称和链接将一次出现一行,使得脚本需要很长时间才能完成。例如,想象一次为一个文件夹中的 300 个文件填充一行。
我想知道我应该修改什么以及这个脚本会是什么样子,这样这个过程会变得更快,一次收集并一次填充单元格,例如 CSV 文件导入。一次填充所有单元格。
【问题讨论】:
标签: google-apps-script google-sheets