【问题标题】:Google Sheets script, copyto and replace existing sheet谷歌表格脚本,复制和替换现有表格
【发布时间】:2016-06-27 23:35:38
【问题描述】:

过去几周我一直在寻找,但无法弄清楚这个脚本。我想要做的是找出一种方法,让我将主 Google 表格文件上的图片日历复制到我管理的另一个 Google 表格文件中。每次主日历有更新时,我都希望它在我管理的其他 Google 表格文件中自动更新。现在我必须复制粘贴所有内容,重新格式化并重新导入图像。我确实找到了一个有些工作的脚本,但它存在一些问题,导致它的工作量一样多。

该脚本是一个 copyTo 脚本,它允许我将标题为“图片日历”的工作表从主 Google 表格文件(称为“主日历”)复制到另一个 Google 表格文件(称为“我的日历”)。我什至设置了一个触发器,允许脚本在我进行编辑时运行。

但是,它不断创建标题为“图片日历 1 的副本”“图片日历 2 的副本”等的新工作表),我不知道如何让脚本替换现有工作表而不是创建新工作表。

我也希望能够在“我的日历”文件中将复制的工作表更改为仅称为“图片日历”。我正在使用的脚本是:

function copyMasterCalendar() {
 var source = SpreadsheetApp.getActiveSpreadsheet();

 var sheet = source.getSheets()[2];

 var destination = SpreadsheetApp.openById("1exiUWVypFpYeHMkXHO3sMUTGupiC2gQjZIF0Ss44-pU");

 sheet.copyTo(destination);
}

任何和所有的帮助将不胜感激!谢谢!

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    如果我理解正确的话,试试这个……

    function copyMasterCalendar() {
      var source = SpreadsheetApp.getActiveSpreadsheet(),
          sheet = source.getSheetByName('Pictorial Calendar'),
          destination = SpreadsheetApp.openById("1exiUWVypFpYeHMkXHO3sMUTGupiC2gQjZIF0Ss44-pU"),
          destSheet = destination.getSheetByName('Pictorial Calendar'),
          copydSheet = sheet.copyTo(destination);
      copydSheet.getDataRange().copyTo(destSheet.getDataRange());
      destination.deleteSheet(copydSheet);
    }
    

    【讨论】:

    • 我认为您理解我的正确,该脚本几乎可以正常工作。它不会导入原始工作表上的格式或图像(我最初列出的 copyTo 脚本确实如此)。我花了几个小时试图弄清楚但没有成功。是否也可以导入格式和图像?我真的很喜欢你的脚本不会创建重复的工作表而是覆盖现有的工作表。
    • 如何将删除最后两行更改为...destination.deleteSheet(destSheet); & copydSheet.setName('Pictorial Calendar');。基本上把原来的表删了,把副本改名了。
    • 非常感谢!最后的编辑使脚本现在可以完美运行,这太棒了!你真的帮我节省了时间和很多麻烦,再次感谢@mongoose36!
    • 没问题!很高兴能提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多