【问题标题】:How to make a copy of a Google spreadsheet with formulas, not only values?如何使用公式制作 Google 电子表格的副本,而不仅仅是值?
【发布时间】:2017-01-31 10:51:35
【问题描述】:

我有一个带有公式的主 Google 表格。用户输入一些详细信息,然后脚本使用复制方法复制工作表:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var tmpSS = ss.copy(bookID + "-" + title);

当我打开新的电子表格时,单元格中只有值,公式没有被复制过来。我如何也复制公式?

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    试试这个:

        var sheetId = SpreadsheetApp.getActiveSpreadsheet().getSheetId();
    
        DriveApp.getFileById(sheetId).makeCopy("SheetName");
    

    【讨论】:

      【解决方案2】:

      正如这里提到的:GAS-copytosheet 上的方法 copyTo 应该复制带有值和公式的工作表。所以也许你可以编写一个循环来创建给定电子表格的所有工作表的副本,使用它。

      【讨论】:

      • 问题是因为他希望复制一个带有只复制实际数据和格式的函数的公式
      • @Vytautas 这是不正确的。 copyTo 确实复制公式
      • 我收回我的说法,测试表明它确实可以复制公式。我的答案仍然有效,使用 .getFormulas().setFormulas() 将起作用
      • 感谢您的回复,但我一定遗漏了一些东西。我使用了以下代码,新创建的电子表格只显示值,而不是公式和值。 var ss = SpreadsheetApp.getActiveSpreadsheet(); sheet = ss.getActiveSheet(); var tmpSS = SpreadsheetApp.create(bookID + "-" + title); sheet.copyTo(tmpSS);你知道我错过了什么吗?
      【解决方案3】:

      根据documentation,您可以使用.getFormulas().setFormulas() 复制公式。您可以复制到您有权访问的任何工作表或电子表格。

      【讨论】:

      • 虽然这可能是解决问题的宝贵提示,但一个好的答案也可以证明解决方案。请edit 提供示例代码来说明您的意思。或者,请考虑将其写为评论。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      相关资源
      最近更新 更多