Google apps script 谷歌工作表将整个工作表复制到另一个工作表

Google apps script 谷歌工作表将整个工作表复制到另一个工作表,google-apps-script,Google Apps Script,我有一个谷歌电子表格,其中包括从各种来源动态维护的两张表格。称之为动态数据1和动态数据2 对于每个动态表,都有一个对应的静态表。让我们称它们为Static_data1和Static_data2 我定期需要对这两对图纸执行以下操作,我一直在手动执行这些操作: 删除静态_数据1的全部内容 复制动态_数据的全部内容1 “仅粘贴特殊值/粘贴值”将值从动态_数据1粘贴到静态_数据1 然后对动态\ U数据2/静态\ U数据2重复该过程 它始终是整个工作表,而不管存在多少行或列 手动操作很好,但我发现我需要将

我有一个谷歌电子表格,其中包括从各种来源动态维护的两张表格。称之为动态数据1和动态数据2

对于每个动态表,都有一个对应的静态表。让我们称它们为Static_data1和Static_data2

我定期需要对这两对图纸执行以下操作,我一直在手动执行这些操作:

  • 删除静态_数据1的全部内容
  • 复制动态_数据的全部内容1
  • “仅粘贴特殊值/粘贴值”将值从动态_数据1粘贴到静态_数据1
  • 然后对动态\ U数据2/静态\ U数据2重复该过程

    它始终是整个工作表,而不管存在多少行或列

    手动操作很好,但我发现我需要将其自动化。我做过一点脚本编写,但不多,所以我不是专家


    我忍不住认为这应该是一个简单的脚本工作。然而,我笨拙的谷歌搜索并没有找到我可以适应的东西。如果您能给我一些建议,我将不胜感激。

    试试这样的建议:

    function copyAll() {
      const ss=SpreadsheetApp.getActive();//Spreadsheet with spreadsheet id's
      const sh=ss.getSheetByName('FromToList');//sheet with spreadsheet id's
      const idA=sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn()).getValues().map((r)=>{
        return {from:r[0],to:r[1]};//FromToList is a sheet with from id's in columnA and to id's in columnB
      });//tested down to here the rest is up to you.  I recommend not unleashing this on real spreadsheets until after you have thoroughly tested it.
      idA.forEach(obj=>{
        let fss=SpreadsheetApp.openById(obj.from);//from Spreadsheet
        let fshts=fss.getSheets();//from sheets
        let tss=SpreadsheetApp.openById(obj.to);//to Spreadsheet
        let tshts=tss.getSheets();//to sheets
        fshts.forEach(fsh=>{
          fsh.copyTo(tss);//copy all from sheets to to spreadsheet
        });
        tshts.forEach(tsh=>{
          tss.deleteSheet(tsh);//delete all original to sheets in to spreadsheet
        });
      });
    }
    
    注意:功能尚未测试

    请查看此项;