我想知道我是否可以通过脚本复制现有电子表格,但不复制其原始脚本。
我有一个年度电子表格,用于管理所有同事的工资。在年底,我想制作电子表格的副本,以保存当年的数据。我将在明年重复使用原始电子表格。
因此,我制作了一个脚本来创建原始电子表格的新副本。我执行了脚本然后打开了脚本编辑器,但有相同的脚本也嵌入在原始电子表格中。
SpreadsheetApp.getActiveSpreadsheet().copy();
这是我在剧本上写的。我应该怎么做才能只复制电子表格?
-
如果只想保存值的副本,而不保存脚本或公式:
复制电子表格(包括结构(后SpreadsheetApp.getActiveSpreadsheet().copy();
复制将单元格内容与getValues()
和setValues()
一起粘贴到循环中。
function copyPasteValues(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var copy=ss.copy("Copy of spreadsheet "+ss.getId());
var copyId=copy.getId()
var sheetNumber=ss.getSheets().length;
for(var i=0; i<sheetNumber;i++) {
var values=ss.getSheets()[i].getDataRange().getValues();
SpreadsheetApp.openById(copyId).getSheets()[i].getDataRange().setValues(values);
}
如果只是您要删除的脚本(单元格不包含公式(:
使用CopyTo()
方法复制工作表:
function copyPasteSheet(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var destination=SpreadsheetApp.openById('DestinationID')
var sheetNumber=ss.getSheets().length;
for(var i=0; i<sheetNumber;i++) {
var values=ss.getSheets()[i].copyTo(destination);
}
}