在G Spreadsheets G Forms之间通过appsscript删除引用

时间:2019-11-13 09:07:58

标签: javascript google-apps-script google-sheets

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

问题在于,一个工作表引用了一个公式编制者,这使得脚本无法删除多余的工作表。

可以手动删除参考。

我想通过appsscipt来实现。

最近我找不到解决办法。

1 个答案:

答案 0 :(得分:0)

使用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慢得多,尤其是在您的Spreadsheets文档包含许多Sheets的情况下。