Problembehandlung für Excel-Add-Ins
In diesem Artikel wird die Problembehandlung für Excel beschrieben. Verwenden Sie das Feedbacktool unten auf der Seite, um andere Probleme vorzuschlagen, die dem Artikel hinzugefügt werden können.
API-Einschränkungen beim Wechsel der aktiven Arbeitsmappe
Add-Ins für Excel sind für die Gleichzeitige Ausführung einer einzelnen Arbeitsmappe vorgesehen. Fehler können auftreten, wenn eine Arbeitsmappe, die von der Arbeitsmappe getrennt ist, die das Add-In ausführt, den Fokus erhält. Dies geschieht nur, wenn bestimmte Methoden gerade aufgerufen werden, wenn sich der Fokus ändert.
Die folgenden APIs sind von diesem Arbeitsmappenwechsel betroffen.
Excel-JavaScript-API | Fehler ausgelöst |
---|---|
Chart.activate |
GeneralException |
Range.select |
GeneralException |
Table.clearFilters |
GeneralException |
Workbook.getActiveCell |
InvalidSelection |
Workbook.getSelectedRange |
InvalidSelection |
Workbook.getSelectedRanges |
InvalidSelection |
Worksheet.activate |
GeneralException |
Worksheet.delete |
InvalidSelection |
Worksheet.gridlines |
GeneralException |
Worksheet.showHeadings |
GeneralException |
WorksheetCollection.add |
GeneralException |
WorksheetFreezePanes.freezeAt |
GeneralException |
WorksheetFreezePanes.freezeColumns |
GeneralException |
WorksheetFreezePanes.freezeRows |
GeneralException |
WorksheetFreezePanes.getLocationOrNullObject |
GeneralException |
WorksheetFreezePanes.unfreeze |
GeneralException |
Hinweis
Dies gilt nur für mehrere Excel-Arbeitsmappen, die unter Windows oder Mac geöffnet sind.
Gemeinsame Dokumenterstellung
Unter Kollaboration in Excel-Add-Ins finden Sie Muster für die Verwendung mit Ereignissen in einer Gemeinsamen Dokumenterstellungsumgebung. In diesem Artikel werden auch potenzielle Mergekonflikte bei verwendung bestimmter APIs wie TableRowCollection.add
erläutert.
Bekannte Probleme
Bindungsereignisse geben temporäre Binding
Objekte zurück
Sowohl BindingDataChangedEventArgs.binding als auch BindingSelectionChangedEventArgs.binding geben ein temporäres Binding
Objekt zurück, das die ID des Binding
Objekts enthält, das das Ereignis ausgelöst hat. Verwenden Sie diese ID mit BindingCollection.getItem(id)
, um das Binding
Objekt abzurufen, das das Ereignis ausgelöst hat.
Im folgenden Codebeispiel wird gezeigt, wie Sie diese temporäre Bindungs-ID verwenden, um das zugehörige Binding
Objekt abzurufen. Im Beispiel wird einer Bindung ein Ereignislistener zugewiesen. Der Listener ruft die getBindingId
-Methode auf, wenn das onDataChanged
Ereignis ausgelöst wird. Die getBindingId
-Methode verwendet die ID des temporären Binding
Objekts, um das Binding
Objekt abzurufen, das das Ereignis ausgelöst hat.
async function run() {
await Excel.run(async (context) => {
// Retrieve your binding.
let binding = context.workbook.bindings.getItemAt(0);
await context.sync();
// Register an event listener to detect changes to your binding
// and then trigger the `getBindingId` method when the data changes.
binding.onDataChanged.add(getBindingId);
await context.sync();
});
}
async function getBindingId(eventArgs) {
await Excel.run(async (context) => {
// Get the temporary binding object and load its ID.
let tempBindingObject = eventArgs.binding;
tempBindingObject.load("id");
// Use the temporary binding object's ID to retrieve the original binding object.
let originalBindingObject = context.workbook.bindings.getItem(tempBindingObject.id);
// You now have the binding object that raised the event: `originalBindingObject`.
});
}
Zellenformat useStandardHeight
und useStandardWidth
Probleme
Die useStandardHeight-Eigenschaft von CellPropertiesFormat
funktioniert in Excel im Web nicht ordnungsgemäß. Aufgrund eines Problems in der Excel im Web Ui wird die Höhe auf dieser Plattform unpräzise berechnet, wenn Sie die useStandardHeight
Eigenschaft auf true
festlegen. Beispielsweise wird eine Standardhöhe von 14 in Excel im Web in 14,25 geändert.
Auf allen Plattformen sollen die Eigenschaften useStandardHeight und useStandardWidth von CellPropertiesFormat
nur auf true
festgelegt werden. Das Festlegen dieser Eigenschaften auf false
hat keine Auswirkungen.
Die Range-Methode getImage
wird auf Excel für Mac nicht unterstützt
Die Range getImage-Methode wird derzeit in Excel für Mac nicht unterstützt. Den aktuellen Status finden Sie unter OfficeDev/office-js Issue #235 .
Bereichsrückgabezeichenlimit
Die Methoden Worksheet.getRange(address) und Worksheet.getRanges(address) haben einen Adresszeichenfolgengrenzwert von 8192 Zeichen. Wenn dieser Grenzwert überschritten wird, wird die Adresszeichenfolge auf 8192 Zeichen abgeschnitten.
Weitere Informationen
Office Add-ins
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für