c# - 在 C# 中访问 PowerPoint 图表

标签 c# charts powerpoint office-interop

我在 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/

相关文章:

C# WPF listview不更新

c# - WebBrowser 组件不显示 CSS 3

c# - WPF 将对象传递给数据网格的转换器并更改一个单元格的颜色

php - 使用mysql数据生成Google图表

powerpoint - PowerPoint 365 加载项 (.ppam) 如何将宏按钮添加到快速访问工具栏?

vba - 在 PowerPoint 中以编程方式设置文本阴影属性

C# DPAPI 必须声明一个主体,因为它没有标记为抽象

javascript - 如何创建具有可变宽度的重叠列的 JavaScript 柱形图

charts - 如何创建一个饼图,其中元素可以属于多个切片?

vba - 查找power point动画步骤vba