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.