powerpoint幻灯片中的foreach图表?

时间:2012-10-24 14:13:13

标签: c# powerpoint

我有两个问题。

1。 我有VS2010与Frameowrk 3.5,需要提升一些数据和文本,并更新一些现有的Powerpoint文件。什么是最好的方法?我是VSTO的新手,但已经使用C#了很长一段时间。

2。 我一直在使用Interop库(Microsoft.Office.Interop.PowerPoint)进行测试 所以我需要打开一个powerpoint并更改所有幻灯片和图表中的一些文本。幻灯片和sahapes没有问题,但图表似乎是一个问题。似乎没有图表集合     if(shape.Type == Office.MsoShapeType.msoChart) 返回false。

我以前在VBA中完成了这项工作并使用了以下代码

For Each chtChart In sht.ChartObjects
        chtChart.Chart.ChartTitle.Characters.Text = Replace    (chtChart.Chart.ChartTitle.Characters.Text, "{month}", strCurrent,    VbCompareMethod.vbTextCompare)
Next chtChart

我真的很想做同样的事。

我错过了一些非常明显的东西吗?

感激地收到任何指示。

史蒂夫

1 个答案:

答案 0 :(得分:1)

您可以在PPT中运行几种类型的图表。忽略旧的MSGraph图表,您可能会发现用户使用Insert |添加的图表图表。

这些将是.Type = 3(msoChart)的形状。以下是您获取图表和/或图表数据的示例:

Sub ShowChartData()

Dim oSh As Shape
Dim oCht As Chart
Dim oData As ChartData

Dim x As Long
Dim y As Long
Dim sTemp As String

Set oSh = ActiveWindow.Selection.ShapeRange(1)

Set oCht = oSh.Chart
oCht.ChartData.Activate
Set oData = oCht.ChartData

For x = 1 To 4
    For y = 1 To 4
        sTemp = sTemp & oData.Workbook.Worksheets("Sheet1").Cells(x, y) & vbTab
    Next    ' y/cell
    Debug.Print sTemp
    sTemp = ""
Next ' x/row

' do this to get rid of visible worksheet
oData.Workbook.Close

Set oData = Nothing
Set oCht = Nothing

End Sub

图表也可以链接或嵌入对象从Excel复制/粘贴。