2012-05-04 39 views
6

Tôi có bản trình bày Powerpoint chứa 3 trang trình bày. Mỗi trang trình bày có một Hộp văn bản là một trình giữ chỗ. Tôi muốn thay thế các nội dung Textbox trên một slide.Thay đổi văn bản trong hộp văn bản trong trang PowerPoint Powerpoint

tôi cần phải biết làm thế nào để làm điều này bằng C# và OpenXML

Nhờ một tấn

+0

Bạn có làm việc này không? Bạn có thể đăng giải pháp không? –

Trả lời

1

Làm điều này cho mỗi slide, bạn muốn thay đổi:

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

Hãy ghi nhớ, rằng nếu trình giữ chỗ của mẫu của bạn chứa khoảng trắng, điều này có thể tạo hai phần tử chạy riêng lẻ. Vì vậy, thay vì một yếu tố chạy với run.Text của "Place holder", bạn có thể nhận được một chạy với run.text của "Place" và một với run.Text "holder".

+1

tôi có một kịch bản, rằng tôi chỉ có đoạn văn, không có yếu tố con bên trong nó. tôi cố gắng thêm phần tử chạy và văn bản bên trong nó vẫn KHÔNG LÀM VIỆC. Bất kỳ trợ giúp nào được đánh giá cao – Eldho

+0

Khi tôi thực hiện việc này và lưu tệp, văn bản đã thay đổi không có ở đó. Nếu tôi kiểm tra 'run.Text' trong trình gỡ lỗi, nó sẽ hiển thị văn bản cập nhật. –

Các vấn đề liên quan