Share via


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.adderlä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 truefestgelegt 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