如何找到扩展名.pdf的匹配文件名以及URL,并在谷歌表单中获取数据



假设一个文件夹中有100个文件"A";在谷歌驱动器。每个文件都有一个5个字符的名称。例如12345,在文件夹中有两个名称匹配的文件,即12345-A和12345-B。我想要的脚本应该忽略匹配文件名中的-A和-B,并且应该返回工作表中A1范围的文件URl。谁能帮上忙吗。此外,我们的想法是将匹配的文件合并为一个pdf文件,并与URL一起保存在谷歌驱动器中。

试试这个:

// Example files
let files = ["test1-A","test2-B", "test1-B", "test2-A"];
// Where to store files with the same name you described
let similar = {};
// Sorting the files
for(let file of files) {
let name = file.match(/^[a-z0-9]+/i)[0]; // Removes the trailing '-A' and '-B'
if(typeof similar[name] === "undefined") similar[name] = []
similar[name].push(file)
}
console.log(similar)

这将产生以下结果:

{
test1: ["test1-A", "test1-B"],
test2: ["test2-B", "test1-A"]
}

您必须使用Apps Script中的Drive服务

例如,为了获得包含";12345";在它们的标题中,您必须创建一个查询,然后根据要搜索的文件夹的id,使用searchFiles方法。

var query = 'title contains "12345"';
var searchResults = DriveApp.getFolderById('FOLDER_ID').searchFiles(query);

之后,根据您的任务,您可以使用hasNext方法访问这些文件

while (searchResults.hasNext()) {
var file = searchResults.next();
// do other tasks
}

至于访问电子表格,您必须使用Spreadsheet服务,以下方法可以帮助您完成任务:

  • getRange-根据您为此方法选择的参数,这将从扩展页返回范围;

  • setValue-这将设置范围的值;

参考

  • 应用程序脚本驱动应用程序类-搜索文件(params(;

  • 应用程序脚本表类-getRange(行,列(;

  • 应用程序脚本范围类-setValue(value(。

最新更新