JavaScript API 中 Excel 缺少方法:复制一个 sheet

Missing method in JavaScript API for Excel: copy a sheet

由于无法取消加载项所做的更改,我们需要为用户提供备份选项。

Excel JavaScript API 的当前版本没有复制 sheet 及其数据和格式的方法。

有谁知道添加这种方法的任何解决方法或计划?

目前确实没有简单的方法来复制作品sheet,所以请随时在 Office Extensibility Platform's UserVoice. While such an API may be coming in the future, you could in the meantime add a new worksheet using worksheetCollection.add(), grab a worksheet's used range using the worksheet.getUsedRange() 方法上请求它并将其值复制到另一个 sheet。

您的代码将如下所示:

function duplicateSheet(worksheetName) {
    Excel.run(function(ctx) {
        var worksheet = ctx.workbook.worksheets.getItem(worksheetName);
        var range = worksheet.getUsedRange();
        range.load("values", "address");

        var newWorksheet = ctx.workbook.worksheets.add(worksheetName + " - Backup");
        return ctx.sync().then(function() {
            var newAddress = range.address.substring(range.address.indexof("!") + 1);
            newWorksheet.getRange(newAddress).values = range.values;              
        }).then(ctx.sync);
    });
}

让我知道你的结果如何。

Gabriel Royer - Office 可扩展性团队的开发人员,MSFT