1

我有 2 个问题。

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

2. 我一直在使用 Interop 库 (Microsoft.Office.Interop.PowerPoint) 进行测试,所以我需要打开一个 powerpoint 并更改所有幻灯片和图表中的一些文本。幻灯片和 sahapes 没问题,但图表似乎是个问题。似乎没有图表集合,如果 (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

我只是真的想做同样的事情。

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

任何指点都感激不尽。

史蒂夫

4

1 回答 1

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 复制/粘贴的链接或嵌入对象。

于 2012-10-24T14:59:57.420 回答