gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 09:13:56 24 4
gpt4 key购买 nike

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com