Open XML - Text in Tabelle ersetzen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Open XML - Text in Tabelle ersetzen

    Hallo Zusammen,

    ich möchte ein Dokument per VB.Net und OpenXML ersetzen. Dazu gefunden habe ich diesen Beitrag (erste Antwort), wie das in C# geht.

    Code entsprechend für VB.Net umgebaut, sieht das ganze bei mir so aus:

    VB.NET-Quellcode

    1. Using doc As WordprocessingDocument = WordprocessingDocument.Open(getAppPath() + "PFAD ZUM DOKUMENT", True)
    2. Dim body = doc.MainDocumentPart.Document.Body
    3. Dim paras = body.Elements(Of Paragraph)()
    4. For Each para In paras
    5. For Each run In para.Elements(Of Run)()
    6. For Each Element In run.Elements(Of Text)()
    7. If Element.Text.Contains("(NAME)") Then
    8. Element.Text = Element.Text.Replace(Element.Text, "Max Mustermann")
    9. End If
    10. Next
    11. Next
    12. Next
    13. End Using


    Funktioniert an sich auch gut, nur sobald der Text in einer Tabelle steht, wird der gar nicht mehr eingelesen.

    Beispiel:


    In die Schleife schafft es jedoch nur der "Text unter der Tabelle". Somit kann ich die Einträge in der Tabelle nicht replacen,

    Jemand eine Idee, wie das doch geht?

    Kurz noch vor ab:
    - Ja, das Dokument muss über Replaces bearbeitet werden, da im Anfangszustand die Platzhalter drin stehen
    - Ich weiß, dass es auch eine native Office Bibiothek für VB.Net gibt, allerdings ist auf den Rechnern, auf denen das Programm genutzt wird kein Office installiert (Auch nicht notwendig, alles was ich mit dem Dokument machen will krieg ich hin, bis eben auf den Text in der Tabelle).

    Grüße und Danke!