Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 扫描工作表文件中的特定单元格值,然后将相应的电子表格ID放入特定单元格中_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 扫描工作表文件中的特定单元格值,然后将相应的电子表格ID放入特定单元格中

Google apps script 扫描工作表文件中的特定单元格值,然后将相应的电子表格ID放入特定单元格中,google-apps-script,google-sheets,Google Apps Script,Google Sheets,所以我想创建一个自动扫描(文件迭代)特定文件夹的系统。我想让系统做的是: 扫描文件夹中的所有工作表文件,当其中一张电子表格的第一张工作表上的某个单元格(它们都是工作表文件)包含某个单元格值时(例如:当第一张工作表“Sheet1”的单元格A1包含“Sales Report”时)然后查找特定电子表格的文件ID,并将其插入另一个固定电子表格的单元格中 有没有人能给我一个最有效的方法,我对if/else的论点有一些想法,但我担心我会让它变得比需要的更复杂。任何帮助都将不胜感激,谢谢 这应该让您开始: 说

所以我想创建一个自动扫描(文件迭代)特定文件夹的系统。我想让系统做的是:

扫描文件夹中的所有工作表文件,当其中一张电子表格的第一张工作表上的某个单元格(它们都是工作表文件)包含某个单元格值时(例如:当第一张工作表“Sheet1”的单元格A1包含“Sales Report”时)然后查找特定电子表格的文件ID,并将其插入另一个固定电子表格的单元格中


有没有人能给我一个最有效的方法,我对if/else的论点有一些想法,但我担心我会让它变得比需要的更复杂。任何帮助都将不胜感激,谢谢

这应该让您开始:

说明:

  • 加载到脚本编辑器并运行任何函数,它将检查任何附加的身份验证要求,以便您可以在尝试使用之前提供该授权

  • 创建图纸名称母版,以便我可以将电子表格名称、图纸名称和电子表格id添加到该图纸

  • 获取文件夹Id并将其粘贴到显示的代码中


  • 非常感谢库珀!我仍然在习惯这个V8语法哈哈,我一时糊涂了。看起来很棒,非常感谢!
        function scanSpreadsheetsInAFolder() {
          const ss=SpreadsheetApp.getActive();
          const tsh=ss.getSheetByName('Master');//where I store ssname shname id
          const folder=DriveApp.getFolderById('FolderId');
          let files=folder.getFilesByType(MimeType.GOOGLE_SHEETS);
          while(files.hasNext()) {
            let file=files.next();
            let s=SpreadsheetApp.openById(file.getId());
            let sh=s.getSheets()[0];//gets first sheet in spreadsheet
            let v=sh.getRange(1,1).getValue();//gets value in A1
            if(v=='Sales Report') {
              tsh.appendRow([ss.getName(),sh.getName(),ss.getId()]);//append data to master
            }
          }
        }