2012-05-04 105 views
6

我有一個包含3張幻燈片的Powerpoint演示文稿。每張幻燈片都有一個文本框,它是一個佔位符。我想替換一張幻燈片上的文本框內容。在Powerpoint幻燈片的文本框中更改文本

我需要知道如何做到這一點使用C#和OpenXML的

由於一噸

+0

你有這個工作嗎?你能夠發佈解決方案嗎? –

回答

1

這樣做對每張幻燈片,要更改:

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」的一個run元素來運行,而run.text爲「Place」,另一個run.text爲「holder」。

+1

我有一個場景,我只有段落,裏面沒有任何子元素。我試圖添加運行和文本元素,它仍然不工作。任何幫助表示讚賞 – Eldho

+0

當我這樣做,並保存該文件,更改後的文本不存在。如果我在調試器中檢查'run.Text',它會顯示更新的文本。 –