2017-09-15 4 views
1

Nous construisons un addin excel qui traite avec un tableau croisé dynamique. Nous souhaitons actualiser le tableau croisé dynamique à partir de la source de données. Nous souhaitons implémenter la même fonctionnalité du bouton Refresh All Connections sur l'onglet Data. Mais nous voulons le faire à partir du code en utilisant office.js.office.js rafraîchir le tableau croisé dynamique dans Excel classeur ne fonctionne pas

Nous avons essayé l'extrait de code suivant. Cela n'a pas fonctionné.

Excel.run(function (ctx) { 
    var pivotTables = ctx.workbook.worksheets.getActiveWorksheet().pivotTables;//.load("items"); 
    pivotTables.refreshAll(); 
    return ctx.sync().then(function() { 
     //var table = pivotTables.items[0]; 
     //table.refresh(); 
     //pivotTables.refreshAll(); 
    }).then(ctx.sync); 
}); 

Toute aide à ce sujet serait appréciée.

Merci.

Répondre

1

Vous êtes code n'est pas faux, mais vos attentes pour ce que refreshAll fait ici est un peu large. Cette méthode actualisera le tableau croisé dynamique pour refléter les modifications apportées aux données le supportant. Ce n'est pas la même chose que de tirer un nouveau cliché des données elles-mêmes. Un exemple d'utilisation de cette méthode serait que si votre complément apportait plusieurs modifications à une matrice de données, une fois celle-ci terminée, vous exécuteriez un refreshAll() pour que vos modifications de données soient reflétées dans le tableau croisé dynamique.

Il n'est actuellement pas possible de déclencher l'actualisation d'une connexion de données à l'aide de office.js.

+0

merci @ marc-lafleur-msft Ce que vous voulez dire par les données de support n'est pas clair pour moi. La base de données n'est-elle pas le magasin de sauvegarde de la table pivotante? vous avez mentionné la "matrice de données". Qu'est-ce que ça veut dire? – amitavak

+0

Votre tableau croisé dynamique est réellement connecté aux données de votre classeur (généralement sur une autre feuille de calcul). Ces données ont peut-être été extraites d'une base de données, mais il s'agit toujours d'un instantané des données. L'actualisation d'un tableau croisé dynamique synchronise votre Pivot avec votre feuille de travail. L'actualisation de vos données extrait un nouvel instantané de la base de données. Il actualise vos données qui ne sont pas prises en charge via JS. –