【问题标题】:Google Sheets Script - copy entire external spreadsheet to current spreadsheetGoogle 表格脚本 - 将整个外部电子表格复制到当前电子表格
【发布时间】:2017-10-10 13:07:58
【问题描述】:

我有每周更新的谷歌电子表格。它包含多个工作表,每周都有不同的名称。

有没有办法使用谷歌脚本将所有工作表从该电子表格复制到另一个电子表格?我的主要目标是复制整个电子表格,并让我运行脚本的工作表具有源工作表中的所有工作表和数据。如果这个复制过程只复制数据,而不是其他工作表中的公式,那就太好了。

提前致谢!

埃里克

【问题讨论】:

  • 你好,埃里克。您能否提供一些示例,您已经编写的代码示例?

标签: google-apps-script google-sheets


【解决方案1】:

我已将其编写为从源表运行,但它可以很容易地适应以相反的方式运行。这只会获取单元格值而不是公式,目前它会创建一个附加日期的新电子表格。

function copyEntireSpreadsheet(){
  var ss,ssName,sheet,sheetName,data,destination
  ss = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  ssName = SpreadsheetApp.getActive().getName();
  destination = SpreadsheetApp.create(ssName + " - " + new Date().toLocaleString());
  for (var i = 0; i < ss.length; i++){
    sheet = ss[i];
    sheetName = sheet.getSheetName();
    data = sheet.getSheetValues(1, 1, sheet.getLastRow(), sheet.getLastColumn());
    destination.insertSheet(sheetName)
    destination.getSheets()[i].getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn()).setValues(data);
  }
}

因为它会在循环内插入一张工作表,所以您将在脚本运行结束时获得一张空白工作表,但这可以手动删除,也可以在函数关闭之前在循环结束时删除。

【讨论】:

    猜你喜欢
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多