我试图搜索包含位于电子表格中特定单元格中的文本字符串的文件夹,然后返回文件夹ID。除了我的folderID行,这段代码工作得很好。
代码如下:'
function getFilesAndFolders() {
var folderName = SpreadsheetApp.getActiveSheet().getRange(2,1).getValue();
var folderID = DriveApp.searchFolders("title contains"+folderName).next().getId();
var file = DriveApp.getFolderById(folderID).getFilesByName("app.csv");
var contents = Utilities.parseCsv(file.next().getBlob().getDataAsString());
var sheetName = writeDataToSheet(contents);
var home = SpreadsheetApp.getActive().getSheetByName("Manage");
home.activate();
}
我已经尝试了几种不同的搜索文件夹查询,但它一直返回错误。
修改点:
-
对于
DriveApp.searchFolders
的搜索查询,请将contains
的搜索值用单引号和/或双引号括起来。 -
在你的脚本中,
DriveApp.searchFolders("title contains"+folderName).next()
是类文件夹对象。
当这些要点反映在您的脚本中时,如何进行以下修改?
修改脚本:
function getFilesAndFolders() {
var folderName = SpreadsheetApp.getActiveSheet().getRange(2, 1).getValue();
var folder = DriveApp.searchFolders("title contains '" + folderName + "'"); // or var folder = DriveApp.searchFolders(`title contains '${folderName}'`);
if (folder.hasNext()) {
var file = folder.next().getFilesByName("app.csv");
var contents = Utilities.parseCsv(file.next().getBlob().getDataAsString());
var sheetName = writeDataToSheet(contents);
var home = SpreadsheetApp.getActive().getSheetByName("Manage");
home.activate();
}
}
- 在您的脚本中,似乎没有使用
sheetName
。 参考:
- 搜索查询词和操作符