2010-05-17 9 views
2

J'ai un modèle PowerPoint qui contient une diapositive et sur cette diapositive est un graphique. J'aimerais pouvoir manipuler les données de ce graphique en utilisant .NET.Comment modifier les données de graphique PowerPoint avec .NET?

Jusqu'à présent, j'ai le code que ...

  1. décompresse le fichier Powerpoint. Décompresse le fichier Excel intégré (ppt \ embeddings \ Microsoft_Office_Excel_Worksheet1.xlsx)
  2. Il manipule avec succès les données de la feuille Excel et les zippe de nouveau.
  3. Permet d'ouvrir et ppt manipule \ graphiques \ chart1.xml
  4. Powerpoint est ensuite compressé et livré à l'utilisateur

Le résultat de ceci est un fichier PowerPoint qui montre un tableau vierge. Mais quand je clique sur le graphique et que je vais éditer les données, il met à jour les données et affiche le graphique correct.

Je crois que mon problème est avec le chart1.xml que je génère. J'ai comparé ma version générée avec une version créée par PowerPoint et ils sont presque identiques. Les seules différences sont dans les valeurs pour <c:crossAx/> et <c:axId/>.

Il existe également des différences d'arrondi dans les données. Mais je ne pense pas que cela se traduirait par un tableau vide.

Existe-t-il un autre fichier à modifier? Est-ce que quelqu'un a des idées quant à quoi d'autre je devrais essayer de faire fonctionner cela?

Répondre

1

Il s'agit probablement d'une combinaison de la valeur axID et des problèmes d'arrondi. L'ID de l'Axe, probablement, demande une valeur entière et vous pouvez fournir un simple/double. Ainsi, les données mises en cache dans chart1.xml ne savent pas comment s'afficher. Essayez la même manipulation que vous avez faite, mais au lieu d'ouvrir le résultat dans PowerPoint, changez l'extension .pptx en .zip, dézippez puis corrigez manuellement les problèmes d'arrondi pour qu'ils correspondent à l'arrondi d'origine. Ensuite, retournez en arrière, changez l'extension en .pptx et ouvrez dans PowerPoint. Si cela résout le problème d'affichage, vous pouvez confirmer qu'il s'agit du problème d'arrondi.

Alternativement, et dans le même sens. Ouvrez votre PPTX résultant dans PowerPoint comme vous l'avez fait, et une fois que vous avez cliqué avec le bouton droit et réhydraté le graphique, enregistrez sous un nom de fichier différent et comparez cela avec votre résultat automatisé.

+0

Merci beaucoup! Il a fini par être que j'écrivais des données au mauvais endroit dans chart1.xml. Mais suivre votre processus m'a permis de voir mon erreur. Merci de votre aide. – mscccc