![](/img/trans.png)
[英]How to insert a picture/text label at specific coordinates in a word 2007 document using C#?
[英]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()”調用中,這只是出於很好的考慮。
這些選項實際上都不適合您。 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.