将Google Spreadsheets与Google Apps脚本合并到一个文件夹中

时间:2013-12-16 17:01:25

标签: merge google-apps-script google-sheets google-apps

我正在尝试自动化合并电子表格的流程。我写了两篇博文(herehere),描述了如何使用公式来做到这一点。现在,我正在尝试通过允许人们在文件夹中合并电子表格或选择要自动合并的电子表格来简化此过程。如果可能,我想使用Google Apps脚本完成所有这些操作。 所以我想知道最好的方法是什么:

  1. 获取文件夹中所有电子表格的密钥
  2. 有一个“文件选择器”,如窗口,用于选择用户需要合并的电子表格
  3. 这两个选项将允许我启用自动化我在博客帖子中的脚本。

1 个答案:

答案 0 :(得分:4)

我猜你可以建立自己的界面。 为了帮助我完成逻辑,我将所有必要的功能合并到下面的表格中:

您可以看到实时版本here

function myFunction() {

  /* Retrieve the desired folder */
  var myFolder = DriveApp.getFolderById("0B0kQD4hSd4KASUJKb2cya0NET1U");

  /* Get all spreadsheets that resided on that folder */
  var spreadSheets = myFolder.getFilesByType("application/vnd.google-apps.spreadsheet");

  /* Create the new spreadsheet that you store other sheets */  
  var newSpreadSheet = SpreadsheetApp.create("Merged Sheets");

  /* Iterate over the spreadsheets over the folder */
  while(spreadSheets.hasNext()) {

    var sheet = spreadSheets.next();

    /* Open the spreadsheet */
    var spreadSheet = SpreadsheetApp.openById(sheet.getId());

    /* Get all its sheets */
    for(var y in spreadSheet.getSheets()) {

      /* Copy the sheet to the new merged Spread Sheet */
      spreadSheet.getSheets()[y].copyTo(newSpreadSheet); 
     }
  }      
}