我在 C# 项目中遇到问题。事实上,我创建了一个 PowerPoint 加载项,我想在幻灯片上生成图表。
我创建了一张幻灯片:
using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Interop.Graph;
Microsoft.Office.Interop.Graph.Chart objChart;
objChart = (Microsoft.Office.Interop.Graph.Chart)objShape.OLEFormat.Object;`
图表是在幻灯片上创建的,但我无法访问要更新或插入的数据。
我试过使用如下数据表:
//DataSheet test = objChart.Application.DataSheet;
//test.Cells.Clear()
这删除了图表的数据,但我无法弄清楚之后如何将值插入回图表数据。
最佳答案
好的,所以对于初学者,请确保包括以下引用资料:
- 来自 .Net 库:
- Microsoft.Office.Interop.Graph
- Microsoft.Office.Interop.Powerpoint
- 来自 COM 库:
- Microsoft Office XX 对象库(其中 XX 是您的组织使用最广泛的 Office 版本 [如果您将它包含在您的包中真的没关系])
将此添加到您的声明部分:
using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Graph = Microsoft.Office.Interop.Graph;
using Core = Microsoft.Office.Core;
然后,试试这个片段:
PowerPoint.Application app = new PowerPoint.Application();
app.Visible = Core.MsoTriState.msoTrue; // Sure, let's watch the magic as it happens.
PowerPoint.Presentation pres = app.Presentations.Add();
PowerPoint._Slide objSlide = pres.Slides.Add(1, PowerPoint.PpSlideLayout.ppLayoutTitleOnly);
PowerPoint.TextRange textRange = objSlide.Shapes[1].TextFrame.TextRange;
textRange.Text = "My Chart";
textRange.Font.Name = "Comic Sans MS"; // Oh yeah I did
textRange.Font.Size = 24;
Graph.Chart objChart = (Graph.Chart)objSlide.Shapes.AddOLEObject(150, 150, 480, 320,
"MSGraph.Chart.8", "", Core.MsoTriState.msoFalse, "", 0, "",
Core.MsoTriState.msoFalse).OLEFormat.Object;
objChart.ChartType = Graph.XlChartType.xl3DPie;
objChart.Legend.Position = Graph.XlLegendPosition.xlLegendPositionBottom;
objChart.HasTitle = true;
objChart.ChartTitle.Text = "Sales for Black Programming & Assoc."; // I'm a regular comedian.
应该像冠军一样工作。我希望这会有所帮助。
关于c# - 在 C# 中访问 PowerPoint 图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3004109/