Javascript 将驱动器文件列表放入Google工作表
每次清除所有数据后,从开始添加数据Javascript 将驱动器文件列表放入Google工作表,javascript,google-apps-script,google-sheets,google-drive-api,Javascript,Google Apps Script,Google Sheets,Google Drive Api,每次清除所有数据后,从开始添加数据 sheet.clear();表.附录行([“名称”、“数据”、“尺寸”]) 有没有办法检查数据? 如果已经存在相同的数据,则该函数对该行不起作用 如果添加了新记录,也应添加该记录,但函数不会从一条记录重新开始 如果我的文件夹中有20个PDF,并在文件夹中再添加一个PDF,则添加函数21 PDF,不要从头开始运行该函数。说明: 以下脚本背后的逻辑如下: 我们获取当前在工作表的D列中的所有文件的url。这些是迄今为止记录的文件的url。我们可以放心地假设URL总是
sheet.clear();表.附录行([“名称”、“数据”、“尺寸”])代码>
有没有办法检查数据?
如果已经存在相同的数据,则该函数对该行不起作用
如果添加了新记录,也应添加该记录,但函数不会从一条记录重新开始
如果我的文件夹中有20个PDF,并在文件夹中再添加一个PDF,则添加函数21 PDF,不要从头开始运行该函数。说明:
以下脚本背后的逻辑如下:
我们获取当前在工作表的D列中的所有文件的url
。这些是迄今为止记录的文件的url
。我们可以放心地假设URL
总是唯一的:
var folder = DriveApp.getFolderById('1_gA4D7dfybJ60IdfgsnqdfdsgVoo9D76fgsdgf9cqmAnJI7g7');
var contents = folder.getFiles();
var file;
var name;
var sheet = SpreadsheetApp.getActiveSheet();
var date;
var size;
sheet.clear();
sheet.appendRow(["Nome", "Data", "Dimensione"]);
while(contents.hasNext()) {
file = contents.next();
name = file.getName();
date = file.getDateCreated();
size = file.getSize();
id = file.getUrl();
data = [name, date, size,id]
sheet.appendRow(data);
}
};
第二步是像原始脚本一样迭代文件,并检查文件的URL
是否位于aURLs
中。如果文件URL
不是aURLs
中的或者在D列中的not,则将其添加到newFiles
数组中:
const aURLs = sheet.getRange('D2:D'+sheet.getLastRow()).getValues().flat();
检查完所有文件后,我们可以在最后一行工作表后,仅添加新文件:
sheet.getRange(sheet.getLastRow()+1,1,newFiles.length,newFiles[0].length).设置值(newFiles)代码>
解决方案:
仅第一次在文件中手动添加标题:
然后每次执行脚本:
if(!uNames.includes(name)){
newFiles.push(data);
}
说明:
以下脚本背后的逻辑如下:
我们获取当前在工作表的D列中的所有文件的url
。这些是迄今为止记录的文件的url
。我们可以放心地假设URL
总是唯一的:
var folder = DriveApp.getFolderById('1_gA4D7dfybJ60IdfgsnqdfdsgVoo9D76fgsdgf9cqmAnJI7g7');
var contents = folder.getFiles();
var file;
var name;
var sheet = SpreadsheetApp.getActiveSheet();
var date;
var size;
sheet.clear();
sheet.appendRow(["Nome", "Data", "Dimensione"]);
while(contents.hasNext()) {
file = contents.next();
name = file.getName();
date = file.getDateCreated();
size = file.getSize();
id = file.getUrl();
data = [name, date, size,id]
sheet.appendRow(data);
}
};
第二步是像原始脚本一样迭代文件,并检查文件的URL
是否位于aURLs
中。如果文件URL
不是aURLs
中的或者在D列中的not,则将其添加到newFiles
数组中:
const aURLs = sheet.getRange('D2:D'+sheet.getLastRow()).getValues().flat();
检查完所有文件后,我们可以在最后一行工作表后,仅添加新文件:
sheet.getRange(sheet.getLastRow()+1,1,newFiles.length,newFiles[0].length).设置值(newFiles)代码>
解决方案:
仅第一次在文件中手动添加标题:
然后每次执行脚本:
if(!uNames.includes(name)){
newFiles.push(data);
}