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
由于无法取消加载项所做的更改,我们需要为用户提供备份选项。
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