J'ai besoin d'insérer ou de modifier par programmation un camembert dans un document Word 2007, en utilisant vs 2010, C# ... tout ce que j'ai trouvé montre comment mettre ces vieux tableaux laids dans un document Word. donc je me demande maintenant s'il est même possible de manipuler les cartes les plus récentes et les plus belles.Comment insérer ou modifier par programme un graphique à secteurs dans un document Word 2007, en utilisant vs 2010, C#?
Celui-ci montre comment faire juste ce que je veux, seulement c'est les vieux graphiques laids .... http://msdn.microsoft.com/en-us/library/ms178766.aspx. Il vous dit d'insérer un objet OLE, et ce sont les anciens éléments de msgraph.chart.8.
J'ai été capable de faire tout ce que j'ai besoin de faire, sauf utiliser le nouveau style de cartes.
Voici une partie du code. J'ai construit un nouveau graphique à secteurs et maintenant comment l'insérer dans le document Word? Ma classe PieChart3D est basée sur ces http://code.msdn.microsoft.com/mschart
// here's my c#.net
private void CreateChart(string title, Microsoft.Office.Interop.Word.Application oWord, Microsoft.Office.Interop.Word.Document oDoc, ChartType chartType, Hashtable values)
{
PieChart3D chart1 = new PieChart3D(); // using System.Windows.Forms.DataVisualization.Charting
chart1.PieChart3D_Load(values);
object oMissing = System.Reflection.Missing.Value;
object oEndOfDoc = "\\endofdoc"; /* \endofdoc is a predefined bookmark */
Microsoft.Office.Interop.Word.Range wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
// None of these work!!!!
wrdRng.InlineShapes.AddOLEControl(chart1);
wrdRng.InlineShapes.AddChart(chart1);
wrdRng.InlineShapes.AddOLEObject(chart1);
return;
}
// done with code
Il me semble que je ne dois la dernière étape d'injection dans le document. Qu'est-ce que je rate?
Êtes-vous ouvert à l'utilisation d'OpenXML pour manipuler votre document Word ou doit-il être Word Automation/Interop (comme vous le montrez dans votre exemple)? – MikeTeeVee