当我使用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
};
至于索引,我不确定如何做,但我相信它是可行的。