簡體   English   中英

如何使用vs 2010,C#以編程方式在Word 2007文檔中插入或編輯餅圖?

[英]How do I programmatically insert, or edit, a pie chart in a Word 2007 document, using vs 2010, c#?

我需要使用vs 2010,C#以編程方式在Word 2007文檔中插入或編輯餅圖,我發現的所有內容都顯示了如何將這些舊的難看的圖表放入Word文檔中。 所以我現在想知道是否有可能操縱更新更好的圖表。

這張圖顯示了如何做我想要的,只是舊的丑陋圖表。... http : //msdn.microsoft.com/zh-cn/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

在我看來,我只需要將其注入文檔中的最后一步。 我想念什么?

您可能應該將丟失的參數添加到“ AddOLEControl()”調用中,這只是出於很好的考慮。

如何使用AddOLEObject將Excel圖表插入Word

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

這些選項實際上都不適合您。 AddChart用於創建Word已經知道的圖表-您必須使用一種已知的圖表類型。 AddOLEControl和AddOLEObject都需要為COM注冊您的Chart類。 當您調用該方法時,它將創建該類的新實例並將其添加到表單中。 您不能使用這些方法添加在C#中創建的現有圖表。

我認為最好的辦法是到您的圖表保存到使用文件SaveImage方法,然后使用它添加到您的Word文檔給AddPicture方法。 您將無法在Word中修改圖表,必須將其刪除並重新添加,但是至少您可以顯示創建的圖表。

我找到了示例代碼。

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

在此代碼中,首先創建單詞詞庫。 您可以在word文檔中設置其樣式。 然后,您只需一個過程調用即可更新圖表。 希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM