Partager via


Résolution des problèmes liés aux compléments Excel

Cet article décrit la résolution des problèmes propres à Excel. Utilisez l’outil de commentaires en bas de la page pour suggérer d’autres problèmes qui peuvent être ajoutés à l’article.

Limitations de l’API lorsque le classeur actif bascule

Les compléments pour Excel sont destinés à fonctionner sur un classeur unique à la fois. Des erreurs peuvent survenir lorsqu’un classeur distinct de celui qui exécute le complément se concentre. Cela se produit uniquement lorsque des méthodes particulières sont en cours d’appel lorsque le focus change.

Les API suivantes sont affectées par ce commutateur de classeur.

sur les API JavaScript pour Excel Erreur levée
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

Remarque

Cela s’applique uniquement à plusieurs classeurs Excel ouverts sur Windows ou Mac.

Co-édition

Consultez Co-écriture dans les compléments Excel pour connaître les modèles à utiliser avec des événements dans un environnement de co-création. L’article traite également des conflits de fusion potentiels lors de l’utilisation de certaines API, telles que TableRowCollection.add.

Problèmes connus

Les événements de liaison retournent des objets temporaires Binding

BindingDataChangedEventArgs.binding et BindingSelectionChangedEventArgs.binding retournent tous deux un objet temporaire Binding qui contient l’ID de l’objet Binding qui a déclenché l’événement. Utilisez cet ID avec BindingCollection.getItem(id) pour récupérer l’objet Binding qui a déclenché l’événement.

L’exemple de code suivant montre comment utiliser cet ID de liaison temporaire pour récupérer l’objet associé Binding . Dans l’exemple, un écouteur d’événement est affecté à une liaison. L’écouteur appelle la getBindingId méthode lorsque l’événement onDataChanged est déclenché. La getBindingId méthode utilise l’ID de l’objet temporaire Binding pour récupérer l’objet Binding qui a déclenché l’événement.

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`. 
    });
}

Format useStandardHeight de cellule et useStandardWidth problèmes

La propriété useStandardHeight de CellPropertiesFormat ne fonctionne pas correctement dans Excel sur le Web. En raison d’un problème dans l’interface utilisateur Excel sur le Web, la définition de la useStandardHeight propriété sur true calcule la hauteur de manière imprécise sur cette plateforme. Par exemple, une hauteur standard de 14 est modifiée à 14,25 dans Excel sur le Web.

Sur toutes les plateformes, les propriétés useStandardHeight et useStandardWidth de CellPropertiesFormat sont uniquement destinées à être définies sur true. La définition de ces propriétés sur n’a false aucun effet.

Méthode de plage getImage non prise en charge sur Excel pour Mac

La méthode Range getImage n’est actuellement pas prise en charge dans Excel pour Mac. Pour connaître l’état actuel, voir Problème OfficeDev/office-js #235 .

Limite de caractères de retour de plage

Les méthodes Worksheet.getRange(address) et Worksheet.getRanges(address) ont une limite de chaîne d’adresse de 8192 caractères. Lorsque cette limite est dépassée, la chaîne d’adresse est tronquée à 8192 caractères.

Voir aussi