首页 > 解决方案 > 通过 G Spreadsheets G Forms 之间的 appscript 删除引用

问题描述

我正在做一个项目,我想将电子表格文件保存为 PDF,因为我需要临时复制文件并删除多余的工作表。

问题是一张表引用了一个公式,这使得脚本无法删除多余的表。

可以手动删除参考。

我想用appsscipt做到这一点。

最近我找不到这样做的方法。

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


使用Spreadsheet.copy(name)时,电子表格连同其(大部分)元数据一起被复制,包括表单绑定。为了避免这种情况,您可以创建自己的copy函数,逐页复制它,避免保留绑定。该函数如下所示:

function customCopy(origin, destination) {
  origin.getSheets().forEach(function(sheet) {
    var copiedSheet = sheet.copyTo(destination);
    copiedSheet.setName(sheet.getName());
  });

  destination.deleteSheet(destination.getSheets()[0]);
}

您可以使用以下功能对其进行测试:

function test() {
  var origin = SpreadsheetApp.getActive();
  var destination = SpreadsheetApp.create('New Spreadsheet');
  customCopy(origin, destination);
}

请注意,此替代功能将比 Spreadsheet.copy 慢得多,尤其是在您的电子表格文档包含许多工作表时。


推荐阅读