Поделиться через


Отмена поддержки с помощью API JavaScript для Excel (предварительная версия)

Надстройки Excel поддерживают поведение отмены. При этом сохраняются как действия, выполняемые API JavaScript для Excel, так и действия, выполняемые пользователем в Excel. Эти действия сохраняются в стеке отмены для отдельного пользователя, что позволяет пользователю при желании выполнить свои действия.

Примечание.

Функции, описанные в этой статье, в настоящее время доступны только в общедоступной предварительной версии. Чтобы использовать эту функцию, необходимо использовать предварительную версию библиотеки API JavaScript для Office из сети доставки содержимого (CDN)Office.js. Файл определения типа для компиляции TypeScript и IntelliSense находится в сети CDN и имеет тип DefinitelyTyped. Эти типы можно установить с помощью npm install --save-dev @types/office-js-preview. Дополнительные сведения о наших планируемых API см. в статье Наборы обязательных элементов API JavaScript для Excel. Чтобы использовать эту функцию, необходимо также присоединиться к программе предварительной оценки Microsoft 365 и скачать последнюю сборку Excel.

Отмена группировки

API JavaScript для Excel также поддерживает отмену группирования. Это позволяет группировать несколько вызовов API в одно невозможное действие для пользователя надстройки. Например, если надстройка должна внести несколько разных обновлений на нескольких листах в ответ на одну команду пользователя, все эти обновления можно заложить в одну группу. Это делается с помощью свойства, mergeUndoGroup предоставленного Excel.run функции.

Если API в группе не предлагает поддержку отмены, возникает ошибка, UndoNotSupported указывающая на то, что операция не может быть сгруппирована. Ваша надстройка должна корректно обработать эту ошибку и представить пользователю разумное сообщение.

В следующем примере кода показано, как объединить несколько действий с параметром mergeUndoGrouptrue.

Важно!

Убедитесь, что все сгруппированные вызовы API поддерживают отмену, чтобы избежать ошибок. Дополнительные сведения см. в разделе Неподдерживаемые API .

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(); 
}); 

Неподдерживаемые интерфейсы API

Большинство API JavaScript для Excel поддерживают действия отмены. Однако список API, которые не поддерживают поведение отмены, см. в следующей таблице.

Совет

При вызове неподдерживаемого API в надстройке стек отмены пользователя очищается, начиная с этого вызова API, и пользователь не сможет отменить действия после этого момента.

API Поддерживается в Excel в Интернете Поддерживается в Excel в Windows и Excel на Mac Примечания
AllowEditRange.address Нет Нет Нет
AllowEditRange.delete Нет Нет Нет
AllowEditRange.pauseProtection Нет Нет Нет
AllowEditRange.setPassword Нет Нет Нет
AllowEditRange.title Нет Нет Нет
AllowEditRangeCollection.add Нет Нет Нет
AllowEditRangeCollection.pauseProtection Нет Нет Нет
Chart.categoryLabelLevel Нет Нет Нет
Chart.seriesNameLevel Нет Нет Нет
ChartPivotOptions.showAxisFieldButtons Нет Да Нет
ChartPivotOptions.showLegendFieldButtons Нет Да Нет
ChartPivotOptions.showReportFilterFieldButtons Нет Да Нет
ChartPivotOptions.showValueFieldButtons Нет Да Нет
ChartTrendlineLabel.formula Нет Да Нет
DataConnectionCollection.refreshAll Нет Нет Нет
DocumentProperties.author​ Нет Да Нет
DocumentProperties.category Нет Да Нет
DocumentProperties.comments Нет Да Нет
DocumentProperties.company Нет Да Нет
DocumentProperties.keywords Нет Да Нет
DocumentProperties.manager Нет Да Нет
DocumentProperties.revisionNumber Нет Да Нет
DocumentProperties.subject Нет Да Нет
DocumentProperties.title Нет Да Нет
LinkedWorkbook.refresh Нет Нет Нет
LinkedWorkbookCollection.refreshAll Нет Нет Нет
NamedItem.comment Нет Да Нет
PivotTableStyle.delete Нет Да API не поддерживает отмену совместного редактирования в Excel в Windows и Mac.
PivotTableStyle.duplicate Нет Да Нет
PivotTableStyle.name Нет Да Нет
PivotTableStyleCollection.add Нет Да API не поддерживает отмену совместного редактирования в Excel в Windows и Mac.
PivotTableStyleCollection.setDefault Нет Да API не поддерживает отмену совместного редактирования в Excel в Windows и Mac.
Query.delete Нет Да API поддерживает отмену в Excel в Windows и Mac, но не поддерживает повтор.
Query.refresh Нет Да API поддерживает отмену Excel в Windows и Mac, но не поддерживает повтор.
QueryCollection.refreshAll Нет Да API поддерживает отмену Excel в Windows и Mac, но не поддерживает повтор.
Slicer.name Нет Да Нет
Slicer.nameInFormula Нет Да Нет
SlicerStyle.delete Нет Да API не поддерживает отмену совместного редактирования в Excel в Windows и Mac.
SlicerStyle.duplicate Нет Да Нет
SlicerStyle.name Нет Да Нет
SlicerStyleCollection.add Нет Да API не поддерживает отмену совместного редактирования в Excel в Windows и Mac.
SlicerStyleCollection.setDefault Нет Да API не поддерживает отмену совместного редактирования в Excel в Windows и Mac.
Style.addIndent Нет Да Нет
Style.autoIndent Нет Да Нет
Style.formulaHidden Нет Да Нет
Style.horizontalAlignment Нет Да Нет
Style.includeAlignment Нет Да Нет
Style.includeBorder Нет Да Нет
Style.includeFont Нет Да Нет
Style.includeNumber Нет Да Нет
Style.includePatterns Нет Да Нет
Style.includeProtection Нет Да Нет
Style.indentLevel Нет Да Нет
Style.locked Нет Да Нет
Style.numberFormat Нет Да Нет
Style.numberFormatLocal Нет Да Нет
Style.orientation Нет Да Нет
Style.readingOrder Нет Да Нет
Style.shrinkToFit Нет Да Нет
Style.textOrientation Нет Да Нет
Style.verticalAlignment Нет Да Нет
Style.wrapText Нет Да Нет
TableStyle.delete Нет Да API не поддерживает отмену совместного редактирования в Excel в Windows и Mac.
TableStyle.duplicate Нет Да Нет
TableStyle.name Нет Да Нет
TableStyleCollection.add Нет Да API не поддерживает отмену совместного редактирования в Excel в Windows и Mac.
TableStyleCollection.setDefault Нет Да API не поддерживает отмену совместного редактирования в Excel в Windows и Mac.
TimelineStyle.delete Нет Да API не поддерживает отмену совместного редактирования в Excel в Windows и Mac.
TimelineStyle.duplicate Нет Да Нет
TimelineStyle.name Нет Да Нет
TimelineStyleCollection.add Нет Да API не поддерживает отмену совместного редактирования в Excel в Windows и Mac.
TimelineStyleCollection.setDefault Нет Да API не поддерживает отмену совместного редактирования в Excel в Windows и Mac.
Workbook.close Нет Нет Нет
Workbook.insertWorksheetsFromBase64 Нет Нет Нет
Workbook.save Нет Нет Нет
WorkbookProtection.protect Нет Нет Нет
WorkbookProtection.unprotect Нет Нет Нет
Worksheet.copy Нет Нет Нет
Worksheet.delete Нет Нет Нет
Worksheet.name Да Нет Нет
Worksheet.standardWidth Нет Да Нет
Worksheet.position Да Нет Нет
Worksheet.visibility​ Да Нет Нет
WorksheetCollection.addFromBase64 Нет Нет Нет
WorksheetProtection.pauseProtection Нет Нет Нет
WorksheetProtection.protect Нет Нет Нет
WorksheetProtection.resumeProtection Нет Нет Нет
WorksheetProtection.setPassword Нет Нет Нет
WorksheetProtection.unprotect Нет Нет Нет
WorksheetProtection.updateOptions Нет Нет Нет

См. также