我有一个包含3张幻灯片的Powerpoint演示文稿。每张幻灯片都有一个文本框,它是一个占位符。我想在一张幻灯片上替换文本框内容。
我需要知道如何使用C#和OpenXML
来做到这一点非常感谢
答案 0 :(得分:3)
为每张幻灯片执行此操作,您想要更改:
ODP.ShapeTree tree = slide.Slide.CommonSlideData.ShapeTree;
foreach (ODP.Shape shape in tree.Elements<ODP.Shape>())
{
// Run through all the paragraphs in the document
foreach (ODD.Paragraph paragraph in shape.Descendants().OfType<ODD.Paragraph>())
{
foreach (ODD.Run run in paragraph.Elements<ODD.Run>())
{
if (run.Text.InnerText.Contains("PLACEHOLDER"))
{
run.Text = new ODD.Text("Your new text");
}
}
}
}
请注意,如果模板的占位符包含空格,则可能会创建两个单独的运行元素。因此,使用run.Text为“Place holder”的一个run元素,可能会运行run.text为“Place”的运行,另一个运行run.Text“holder”。