Compartilhar via


Anular o suporte com a API javaScript do Excel

Os suplementos do Excel suportam o comportamento de anulação. Isto preserva ambas as ações executadas pelas APIs JavaScript do Excel e as ações executadas pelo utilizador no Excel. Estas ações são guardadas na pilha de anulação de um utilizador individual, permitindo ao utilizador recuar nas ações quando pretender.

Anular agrupamento

A API JavaScript do Excel também suporta o agrupamento anular. Isto permite-lhe agrupar várias chamadas à API numa única ação anulável para o utilizador do suplemento. Por exemplo, se o seu suplemento precisar de fazer várias atualizações diferentes em várias folhas de cálculo em resposta a um único comando de utilizador, pode encapsular todas essas atualizações num único grupo. Isto é feito com a mergeUndoGroup propriedade fornecida à Excel.run função.

Se uma API dentro do grupo não oferecer suporte para anular, é apresentado o UndoNotSupported erro para informá-lo de que a operação não pode ser agrupada. O suplemento deve processar corretamente este erro e apresentar uma mensagem razoável ao utilizador.

O seguinte exemplo de código mostra como intercalar várias ações com mergeUndoGroup definidas como true.

Importante

Confirme que todas as chamadas à API agrupadas suportam a anulação para evitar erros. Veja APIs não suportadas para obter mais informações.

await Excel.run({ mergeUndoGroup: true }, async (context) => { 
    const sheet = context.workbook.worksheets.getActiveWorksheet(); 
    let range = sheet.getRange("A1"); 
    range.values = [["123"]]; 
    
    await context.sync(); 
    
    range = sheet.getRange("B2"); 
    range.values = [["456"]];

    await context.sync(); 
}); 

APIs sem suporte

A maioria das APIs JavaScript do Excel suportam ações de anulação. No entanto, consulte a tabela seguinte para obter uma lista de APIs que não suportam o comportamento de anulação.

Dica

Se chamar uma API não suportada no seu suplemento, a pilha de anulação do utilizador é desmarcada a partir dessa chamada à API e um utilizador não pode anular ações para além desse ponto.

API Suportado no Excel na Web Suportado no Excel no Windows e Excel no Mac Observações
AllowEditRange.address Não Não Nenhum
AllowEditRange.delete Não Não Nenhum
AllowEditRange.pauseProtection Não Não Nenhum
AllowEditRange.setPassword Não Não Nenhum
AllowEditRange.title Não Não Nenhum
AllowEditRangeCollection.add Não Não Nenhum
AllowEditRangeCollection.pauseProtection Não Não Nenhum
Chart.categoryLabelLevel Não Não Nenhum
Chart.seriesNameLevel Não Não Nenhum
ChartPivotOptions.showAxisFieldButtons Não Sim Nenhum
ChartPivotOptions.showLegendFieldButtons Não Sim Nenhum
ChartPivotOptions.showReportFilterFieldButtons Não Sim Nenhum
ChartPivotOptions.showValueFieldButtons Não Sim Nenhum
ChartTrendlineLabel.formula Não Sim Nenhum
DataConnectionCollection.refreshAll Não Não Nenhum
DocumentProperties.author​ Não Sim Nenhum
DocumentProperties.category Não Sim Nenhum
DocumentProperties.comments Não Sim Nenhum
DocumentProperties.company Não Sim Nenhum
DocumentProperties.keywords Não Sim Nenhum
DocumentProperties.manager Não Sim Nenhum
DocumentProperties.revisionNumber Não Sim Nenhum
DocumentProperties.subject Não Sim Nenhum
DocumentProperties.title Não Sim Nenhum
LinkedWorkbook.refresh Não Não Nenhum
LinkedWorkbookCollection.refreshAll Não Não Nenhum
NamedItem.comment Não Sim Nenhum
PivotTableStyle.delete Não Sim A API não suporta a anulação da cocriação no Excel no Windows e Mac.
PivotTableStyle.duplicate Não Sim Nenhum
PivotTableStyle.name Não Sim Nenhum
PivotTableStyleCollection.add Não Sim A API não suporta a anulação da cocriação no Excel no Windows e Mac.
PivotTableStyleCollection.setDefault Não Sim A API não suporta a anulação da cocriação no Excel no Windows e Mac.
Query.delete Não Sim A API suporta a anulação no Excel no Windows e Mac, mas não suporta refazer.
Query.refresh Não Sim A API suporta anular o Excel no Windows e Mac, mas não suporta refazer.
QueryCollection.refreshAll Não Sim A API suporta anular o Excel no Windows e Mac, mas não suporta refazer.
Slicer.name Não Sim Nenhum
Slicer.nameInFormula Não Sim Nenhum
SlicerStyle.delete Não Sim A API não suporta a anulação da cocriação no Excel no Windows e Mac.
SlicerStyle.duplicate Não Sim Nenhum
SlicerStyle.name Não Sim Nenhum
SlicerStyleCollection.add Não Sim A API não suporta a anulação da cocriação no Excel no Windows e Mac.
SlicerStyleCollection.setDefault Não Sim A API não suporta a anulação da cocriação no Excel no Windows e Mac.
Style.addIndent Não Sim Nenhum
Style.autoIndent Não Sim Nenhum
Style.formulaHidden Não Sim Nenhum
Style.horizontalAlignment Não Sim Nenhum
Style.includeAlignment Não Sim Nenhum
Style.includeBorder Não Sim Nenhum
Style.includeFont Não Sim Nenhum
Style.includeNumber Não Sim Nenhum
Style.includePatterns Não Sim Nenhum
Style.includeProtection Não Sim Nenhum
Style.indentLevel Não Sim Nenhum
Style.locked Não Sim Nenhum
Style.numberFormat Não Sim Nenhum
Style.numberFormatLocal Não Sim Nenhum
Style.orientation Não Sim Nenhum
Style.readingOrder Não Sim Nenhum
Style.shrinkToFit Não Sim Nenhum
Style.textOrientation Não Sim Nenhum
Style.verticalAlignment Não Sim Nenhum
Style.wrapText Não Sim Nenhum
TableStyle.delete Não Sim A API não suporta a anulação da cocriação no Excel no Windows e Mac.
TableStyle.duplicate Não Sim Nenhum
TableStyle.name Não Sim Nenhum
TableStyleCollection.add Não Sim A API não suporta a anulação da cocriação no Excel no Windows e Mac.
TableStyleCollection.setDefault Não Sim A API não suporta a anulação da cocriação no Excel no Windows e Mac.
TimelineStyle.delete Não Sim A API não suporta a anulação da cocriação no Excel no Windows e Mac.
TimelineStyle.duplicate Não Sim Nenhum
TimelineStyle.name Não Sim Nenhum
TimelineStyleCollection.add Não Sim A API não suporta a anulação da cocriação no Excel no Windows e Mac.
TimelineStyleCollection.setDefault Não Sim A API não suporta a anulação da cocriação no Excel no Windows e Mac.
Workbook.close Não Não Nenhum
Workbook.insertWorksheetsFromBase64 Não Não Nenhum
Workbook.save Não Não Nenhum
WorkbookProtection.protect Não Não Nenhum
WorkbookProtection.unprotect Não Não Nenhum
Worksheet.copy Não Não Nenhum
Worksheet.delete Não Não Nenhum
Worksheet.name Sim Não Nenhum
Worksheet.standardWidth Não Sim Nenhum
Worksheet.position Sim Não Nenhum
Worksheet.visibility​ Sim Não Nenhum
WorksheetCollection.addFromBase64 Não Não Nenhum
WorksheetProtection.pauseProtection Não Não Nenhum
WorksheetProtection.protect Não Não Nenhum
WorksheetProtection.resumeProtection Não Não Nenhum
WorksheetProtection.setPassword Não Não Nenhum
WorksheetProtection.unprotect Não Não Nenhum
WorksheetProtection.updateOptions Não Não Nenhum

Confira também