Wir haben ein Excel-Office js Add-in auf eckigen geschrieben. Je nachdem, auf welchem Blatt sich der Benutzer befindet, hat er verschiedene Funktionen. Wenn Benutzer die Excel-Blätter wechseln, wie kann die Anwendung sie kennen, so dass sie die Benutzeroberfläche ändern kann, um sie den Funktionen des Blattes anzupassen?Wie identifiziert das Excel-Blatt Ereignis in Office geändert js api?
Antwort
Es gibt kein Blatt geändert Ereignis. Eine Problemumgehung wäre jedoch, dass Sie DocumentSelectionChanged-Ereignisse abonnieren und dann jedes Mal das aktive Blatt des Benutzers überprüfen, um festzustellen, ob es sich geändert hat.
UPDATE 18. Mai 2017: Mit ExcelApi 1.2+ Sie eine neue Syntax
Die neue Syntax lautet wie folgt verwendet werden: context.workbook.onSelectionChanged.add(yourHandler)
;
Sie können ein vollständiges Beispiel finden, indem Sie Script Lab verwenden, ein kostenloses Add-In zum Ausprobieren von Office Add-In-Snippets. Eine der Proben hat eine "Auswahl Changed" Ereignis-Schnipsel:
==================
Ursprüngliche Antwort:
Wie Michael Saunders sagte, können Sie das Auswahländerungsereignis verwenden. Siehe den folgenden Code. Beachten Sie, dass ich in diesem Fall die Syntax "Office 2013" mit der neueren hostspezifischen Syntax ("Excel." Namespace) von Office 2016 mischt. In der Veröffentlichung "ExcelApi 1.3
", die in ein paar Monaten kommt, haben wir tatsächlich eine Möglichkeit, dies vollständig mit der neuen Syntax zu tun, aber das ist derzeit nur auf der Vorschau CDN, und möglicherweise nicht auf Ihrem Computer, abhängig davon, wie neu Ihre Version von Ofice 2016 ist. Der unten stehende Code wird unterdessen mit jeder RTM-Installation von 2016 funktionieren.
Office.context.document.addHandlerAsync(Office.EventType.DocumentSelectionChanged, function() {
Excel.run(function(context) {
var sheet = context.workbook.worksheets.getActiveWorksheet();
sheet.load("name")
return context.sync().then(function() {
console.log('You are now on sheet "' + sheet.name + '"');
})
}).catch(function(error) {
console.log(error);
if (error instanceof OfficeExtension.Error) {
console.log("Debug info: " + JSON.stringify(error.debugInfo));
}
});
});
Wird dies versuchen. Wann wird dieses Ereignis ausgelöst? Irgendwelche Leistungsprobleme, wenn es mehrere Blätter gibt? Wenn das Ereignis in allen Zellenauswahlen ausgelöst wird, funktionierte es aufgrund von Leistungsproblemen nicht früher. – renil
@ michael-zlatkovsky-microsoft Was ist der Ansatz der API 1.3, dies zu implementieren? – Sameera
Siehe aktualisierte Antwort –
- 1. Wie die geänderte Zelle in Office identifiziert wird js api BindingDataChanged-Ereignis?
- 2. Office 365-API - Ereignis mit Anlage erstellen
- 3. Office VSTO-Add-Ins und Office-Add-Ins mit Office JS API
- 4. Nur Office-Version geändert Problem
- 5. Wie kann ich Sperren und Zeile/Spalte Sichtbarkeit in Office js api
- 6. Office 365 api in PHP
- 7. Weinre JS API onload/bereit Ereignis
- 8. Office 365 Kalender API
- 9. Tastaturgröße geändert Ereignis in swift?
- 10. Wie Blur-Ereignis in Winkel js
- 11. @ Html.TextBoxFor Text geändert Ereignis
- 12. Silverlight- DataGrid-Steuerelement - Auswahl Ereignis geändert, das das Sortieren beeinträchtigt
- 13. Datenbindung, Eigenschaft Ereignis geändert
- 14. Binding Zielwert geändert Ereignis
- 15. Kann JS ein Office Add-In öffnen?
- 16. Wie identifiziert man das neue iPad
- 17. Office JS - Aktualisieren der Add-In-Version
- 18. Erkennen von Dokumenttasten in Office-js
- 19. Gridview Text geändert Ereignis
- 20. Wie kratze ich etwas, nachdem JS das DOM geändert hat?
- 21. Wie erreicht man Freeze Pane in Excel mit Office js api?
- 22. Postback-Ereignis auf Text geändert Ereignis
- 23. Office Word JS - Inhaltssteuerung aus Tabellenauswahl
- 24. Operatives Ereignis oder Methode in XCode kann nicht identifiziert werden
- 25. Office 365 API programmatische Authentifizierung
- 26. Wpf xamdatagrid DataSource geändert Ereignis
- 27. Auswahl geändert Ereignis mit MVVM
- 28. Office-Diagramm TrendingAround API-Ergebnis?
- 29. Wie behandelt man das PowerPoint-Abschluss-Ereignis programmatisch in Office Com-Add-Ins?
- 30. JavaScript-Ereignis, wenn das Attribut 'src' geändert wird?
Ist dieser Anwendungsfall von verschiedenen Blättern mit unterschiedlicher Funktionalität nicht von Office js unterstützt? – renil
Ich bin mir nicht sicher, ob ich das verstanden habe - die vorgeschlagene Lösung wird Ihnen tatsächlich ermöglichen, die Funktionalität Ihres Add-Ins abhängig vom aktiven Blatt anzupassen, indem Sie Office.js verwenden –
Da die vorgeschlagene Antwort Excel.run bei jedem Zellenänderungsereignis aufrufen muss, Es ist nicht wirklich gut skaliert. Ich frage mich, ob es einen besseren Ansatz gibt. – renil