使用带有索引和新名称的"copyTo"将工作表从一个电子表格复制到另一个电子表格?



当我使用copyTo运行代码时,如下所示:

var destination = SpreadsheetApp.openById('ID_GOES HERE');
sheet.copyTo(destination);

该表在目的地电子表格中显示得很好,但选项卡名称添加了";";并显示为文件中的最后一个选项卡。有没有一种方法可以使用";复制到";这样我也可以让它索引0并给它一个新名称?或者我必须添加额外的代码来重新索引和重命名吗?

谢谢!

以下是完整的实现:

function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
var destination = SpreadsheetApp.openById('###'); // <-- destination sheet ID
var copied_sheet = sheet.copyTo(destination);
copied_sheet.setName(sheet.getName()); // get a name from original sheet
copied_sheet.activate();
destination.moveActiveSheet(1); // move the copied sheet in first position
}

但您需要确保目标电子表格中没有同名的表格。这就是SpreadsheetApp在原始名称中添加"Copy"的原因。

参考文献:

  • 电子表格.moveActiveSheet((
  • sheet.copyTo((

要随意重命名新工作表,只需设置一个新名称即可。作为一个例子,我制作了这个函数,它允许您通过对话框重命名活动工作表。

你可以从你的copyTo函数内部调用这个函数,或者调整它以配合它

function sheetRename() {
var spreadsheet = SpreadsheetApp.getActive(); //you can set to get spreadsheet by URL or ID
var sheet = spreadsheet.getActiveSheet(); //same as above
var newName = Browser.inputBox("New Sheet Name","Input new sheet name",Browser.Buttons.OK_CANCEL); //creates a dialog box asking for a new name input
sheet.setName(newName); //renames your sheet
};

至于索引,我不确定如何做,但我相信它是可行的。

相关内容

最新更新