如何使用c#从.pptx或.ppt文件中提取列表或项目符号详细信息

时间:2013-02-09 11:49:29

标签: powerpoint

我使用Microsoft Office Interope程序集使用c#从.pptx和.ppt文件中提取功能。我能够提取有关形状,动画的详细信息,但无法提取有关ppt或pptx包含哪些类型的子弹或哪些幻灯片包含子弹等的详细信息。

请帮我找到这个。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

在VBA中,您可以执行以下操作来检查幻灯片1上的项目符号

Dim oSh As Shape
Dim x As Long ' Integer in C#?
For Each oSh In ActivePresentation.Slides(1).Shapes
    With oSh
        If .HasTextFrame Then
            If .TextFrame.HasText Then
                With .TextFrame2.TextRange
                    For x = 1 To .Paragraphs.Count
                        Debug.Print .Paragraphs(x).ParagraphFormat.Bullet.[Various properties]

                    Next
                End With
            End If
        End If
    End With
Next

查看PPT VBA编辑器中的代码。在上面的Bullet之后键入点时,intellisense将显示可用的属性。

答案 1 :(得分:0)

有几种方法。在下面的代码中,您可以看到您可以在程序中访问的文本的属性:

ppTextBox.TextFrame2.TextRange.ParagraphFormat.Bullet.Type =
    Office.MsoBulletType.msoBulletNumbered;
ppTextBox.TextFrame2.TextRange.ParagraphFormat.Bullet.Style =
    Office.MsoNumberedBulletStyle.msoBulletAlphaLCParenBoth;

ppTextBox.TextFrame2.TextRange.ParagraphFormat.Bullet.StartValue = 4;
ppTextBox.TextFrame2.TextRange.ParagraphFormat.Bullet.UseTextColor =
    Office.MsoTriState.msoTrue;
ppTextBox.TextFrame2.TextRange.ParagraphFormat.Bullet.UseTextFont =
    Office.MsoTriState.msoTrue;

其中ppTextBox是一个形状对象,并注意使用TextFrame2而不是TextFrame。您可以针对枚举列表Office.MsoBulletType查询ParagraphFormat.Bullt.Type以查看已应用的列表。

有关详细信息,请查看this page以获取有关使用C#在powerpoint中进行文本处理的更多详细信息。