Как программно вставить или отредактировать круговую диаграмму в документе Word 2007, используя версию 2010, c #? - PullRequest
8 голосов
/ 20 октября 2010

Мне нужно программно вставить или отредактировать круговую диаграмму в документе Word 2007, используя vs 2010, c # ... все, что я нашел, показывает, как поместить эти старые уродливые диаграммы в слово doc.так что теперь мне интересно, можно ли вообще манипулировать новыми и более привлекательными графиками.

Этот пример показывает, как делать то, что я хочу, только это старые уродливые диаграммы .... http://msdn.microsoft.com/en-us/library/ms178766.aspx. Он говорит вам, чтобы вставить объект OLE, и это древний msgraph.chart.8 штук.

Я смог сделать все, что мне нужно, кроме использования более нового стиля диаграмм.

Вот часть кода.Я построил новую круговую диаграмму и теперь, как мне вставить ее в документ Word?Мой класс PieChart3D основан на этих 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

Мне кажется, мне нужен только последний шаг, чтобы добавить его в документ.Чего мне не хватает?

Ответы [ 3 ]

3 голосов
/ 19 ноября 2010

Вы, вероятно, должны добавить недостающие параметры в вызов AddOLEControl () просто для хорошей меры.

Как вставить диаграмму Excel в Word с помощью AddOLEObject

http://support.microsoft.com/kb/316384

1 голос
/ 22 июня 2012

Я нашел образец кода.

http://www.codeproject.com/Articles/188909/Updating-Charts-in-Word-Document-using-OpenXML

В этом коде сначала создайте слово cocument. Вы можете установить его стиль в документе Word. Затем вы можете обновить диаграмму всего одним вызовом процедуры. надеюсь, это поможет.

1 голос
/ 22 июня 2012

Ни один из этих вариантов на самом деле не будет работать для вас.AddChart используется для создания диаграммы, о которой Word уже знает - вы должны использовать один из известных типов диаграмм.AddOLEControl и AddOLEObject требуют, чтобы ваш класс Chart был зарегистрирован для COM.Когда вы вызываете метод, он создает новый экземпляр класса и добавляет его в форму.Вы не можете использовать эти методы для добавления существующего графика, который вы создали в C #.

Я думаю, что вам лучше всего сохранить ваш график в файл, используя метод SaveImage , а затем добавитьэто к вашему документу WORD, используя метод AddPicture .Вы не сможете изменить диаграмму в Word, вам придется удалить и повторно добавить ее, но по крайней мере вы можете отобразить созданную вами диаграмму.

...