2012-05-04 18 views
6

Mam prezentację programu Powerpoint, która zawiera 3 slajdy. Każdy slajd ma pole tekstowe, które jest uchwytem na miejsce. Chciałbym zastąpić zawartość Textbox na jednym slajdzie.Zmiana tekstu w polu tekstowym w slajdzie programu Powerpoint

Muszę wiedzieć, jak to zrobić przy użyciu C# i OPENXML

Dzięki ton

+0

Czy to działa? Czy jesteś w stanie opublikować rozwiązanie? –

Odpowiedz

1

to zrobić dla każdego slajdu, chcesz zmienić:

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"); 
        } 
       } 
      } 
     } 

Należy pamiętać, że jeśli elementy zastępcze twojego szablonu zawierają spacje, może to spowodować utworzenie dwóch pojedynczych elementów. Zamiast jednego elementu run z run.Text "Place holder", możesz uzyskać jeden przebieg z run.text "Place" i inny z run.Text "holder".

+1

Mam scenariusz, że mam tylko akapit, bez elementów podrzędnych w nim. próbuję dodać element run i text wewnątrz wciąż NIE DZIAŁAJĄCY. Każda pomoc jest doceniana. – Eldho

+0

Kiedy to zrobię i zapiszę, zmieniony tekst nie istnieje. Jeśli sprawdzę "run.Text" w debugerze, wyświetli zaktualizowany tekst. –

Powiązane problemy