使用Open XML SDK 2.0获取占位符值

时间:2014-10-08 19:23:24

标签: c# openxml openxml-sdk

我正在尝试向下钻取PowerPoint幻灯片中的shapetree以获取形状的占位符值。 shapetree上的形状如下所示:

<p:sp>
    <p:nvSpPr>
        <p:cNvPr id="10" name="Text Placeholder 2"/>
        <p:cNvSpPr>
            <a:spLocks noGrp="1"/>
        </p:cNvSpPr>
        <p:nvPr>
            <p:ph type="body" sz="quarter" idx="13" hasCustomPrompt="1"/>
        </p:nvPr>
    </p:nvSpPr>
    <p:spPr>
        <a:xfrm>
            <a:off x="457200" y="3276601"/>
            <a:ext cx="8229600" cy="838199"/>
        </a:xfrm>
        <a:prstGeom prst="rect">
            <a:avLst/>
        </a:prstGeom>
    </p:spPr>
    <p:txBody>
        <a:bodyPr lIns="91421" tIns="45710" rIns="91421" bIns="45710"/>
        <a:lstStyle>
            <a:lvl1pPr marL="0" indent="0" algn="ctr">
                <a:buFontTx/>
                <a:buNone/>
                <a:defRPr sz="2400" b="1" baseline="0">
                    <a:solidFill>
                        <a:schemeClr val="tx1"/>
                    </a:solidFill>
                    <a:latin typeface="+mj-lt"/>
                    <a:cs typeface="Arial" pitchFamily="34" charset="0"/>
                </a:defRPr>
            </a:lvl1pPr>
        </a:lstStyle>
        <a:p>
            <a:pPr lvl="0"/>
            <a:r>
                <a:rPr lang="en-US" dirty="0" smtClean="0"/>
                <a:t>Click to enter course title</a:t>
            </a:r>
        </a:p>
    </p:txBody>
</p:sp>

我感兴趣的部分看起来像这样:

<p:nvPr>
    <p:ph type="body" sz="quarter" idx="13" hasCustomPrompt="1"/>
</p:nvPr>

我正在尝试获取idx值(在这种情况下为13)。

我正在使用的声明看起来像这样,到目前为止(我说“到目前为止”因为我不知道如何完成声明):

var index = shape.NonVisualShapeProperties.NonVisualShapeDrawingProperties. <-???

在代码的这一点,我有我想要的形状,我只是无法弄清楚如何使用Open Office SDK获取占位符值。我想我可以将它视为普通的旧XML并按元素名称获取它,但我认为OOXML SDK将内置一些方法。

1 个答案:

答案 0 :(得分:3)

最后想出了如何做到这一点:

index = int.Parse(shape.NonVisualShapeProperties.ApplicationNonVisualDrawingProperties.PlaceholderShape.Index);

当我应该使用NonVisualShapeDrawingProperties时,我正在使用ApplicationNonVisualDrawingProperties