首页 > 解决方案 > 将 n 个 Google 电子表格文件合并到 n 个工作表中

问题描述

说,我有 100 个谷歌电子表格文件,我需要合并到一个包含 100 个标签(表格)的文件中。是否可以使用应用程序脚本。目前我在下面有一个代码,

function popForm() {
  var ss = SpreadsheetApp.getActive();
  for(var b = 0; b<100; b++){
  var sheet = ss.getSheetByName('Sheet '+b);
  var numberRows = sheet.getDataRange().getNumRows();
....
....

上面的代码适用于具有 100 个选项卡(表格)的电子表格。但是我有 100 个带有一个标签(表)的电子表格。

标签: google-apps-scriptgoogle-sheetsgoogle-drive-api

解决方案


解释:

  • 您有一个FolderId包含所有电子表格文件的文件夹。您可以使用getFolderById()方法找到此文件夹。
  • 您使用getFiles()方法获取此文件夹的文件,并使用 while 循环遍历这些文件。
  • 对于每个文件,您都会获得第一张工作表,然后使用 copyTo()方法将其复制到源(活动)电子表格文件中。
  • 新创建的工作表将以它来自的电子表格文件的名称命名。随意更改这部分或让我知道,以便我可以修改它。

解决方案:

你一定在找这个:

function myFunction() {

const source_sh = SpreadsheetApp.getActive();  
const folder = DriveApp.getFolderById('FolderId');
const files = folder.getFiles();
  
while (files.hasNext()) { 
    var file = files.next();    
    var target_ss = SpreadsheetApp.openById(file.getId()); 
    var target_sh = target_ss.getSheets()[0];
    target_sh.copyTo(source_sh).setName(file.getName());
    }
}

推荐阅读