none
Word Inhalt als Xml Exportieren RRS feed

  • Frage

  • Hallo

    ich suche gerade eine Möglichkeit ein WordFile in Xml zu exportieren aber ohne SaveAs zu nutzen. Gibt es da eine Möglichkeit?

    Dienstag, 24. November 2009 11:13

Antworten


  • Mit VBA XML Erzeugen und Einfügen

    WilliB

    ' VBA
    '   REFERENZ auf MSXML6 (Menü Extras-Verweise)
    '   bei Office2007 für andere OfficeVersionen ggf anpassen
    ' Im aktuellen Dokument  WordML ermitteln mit Range.XML
    ' speichern als XML Datei und wiedereinfügen am Ende des Dokuments
    
    Sub captureWordML()
        Dim XFilename As String
        Set XMLdoc = New MSXML2.DOMDocument60
    
        Dim wdRange As Word.Range
        Set wdRange = ActiveDocument.Content
        Debug.Print wdRange.XML
        
        XMLdoc.LoadXML wdRange.XML
        XFilename = ActiveDocument.FullName + ".wd.xml"
        XMLdoc.Save XFilename
        Debug.Print "Datei gespeichert: " + XFilename
    
        insertfromfile XFilename
    End Sub
    
    
    Sub insertfromfile(filename As String)
        Dim XMLdoc As MSXML2.DOMDocument60
        Dim XMLFileName As String
        Set XMLdoc = New MSXML2.DOMDocument60
        
        XMLdoc.Load (filename)
        
        ' Einfügeposition setzen
        Selection.MoveEnd
        Selection.InsertXML XMLdoc.DocumentElement.XML ', Transformation als zweiter Parameter möglich
    
    End Sub
    


    Dienstag, 1. Dezember 2009 09:15

Alle Antworten

  • Hallo Tiran1984,

    was genau hast du denn vor? Ein kompletter Export als XML ist ja schon im Ansatz mit Einschränkungen verbunden, da ein Dokument beispielsweise auch Bilder enthalten kann. Auf diese Bilder muss dann vom XML aus verwiesen werden und die Bilder müssen dann im entsprechenden Verzeichnis vorhanden sein.
    Dieses Konstrukt aus Text, Formatierungen, Styles, Bildern etc. wurde ja bereits mit dem Open XML Dateiformat gelöst. Ein docx ist nur ein zip, worin sich ja eigentlich schon alles als XML befindet...

    Viele Grüße
    Jan
    Dienstag, 24. November 2009 16:43
  • ich hab vor die daten in xml speichern dann in einem anderen tool die xml file bearbeiten und dann wieder zurück zu spielen. Mit SaveAs geht es auch schon soweit alles nur das ich dabei einmal in xml speichern muss und dann wieder in docx damit ich die xml datei bearbeiten kann. Auch Bilder und so Zeugs wird gespeichert. Damit ich aber nicht zweimal speichern muss würde ich gerne in eine xml Datei direkt schreiben.

    Gruss

    Michael
    Dienstag, 24. November 2009 18:39
  • Hallo Michael,

    am einfachsten ist es, wenn du direkt mit dem Open XML Format arbeitest. Das geht natürlich allein mit .NET, also ohne dass Office auf dem Rechner installiert sein muss. Eine gute Einführung als Webcast gibt es z.B. hier http://www.microsoft.com/germany/msdn/webcasts/library.aspx?id=1032335275. Ansonsten findest du auch zahlreiche weitere Informationen in der MSDN.

    Viele Grüße
    Jan
    Dienstag, 24. November 2009 20:42
  • Hallo Michael,

    Schau Dir mal die folgenden Artikeln an. Vielleicht findest Du etwas was Dir weiter helfen kann.

    Konvertieren von Office-Dokumenten zu Open XML à http://blogs.msdn.com/dmahugh/archive/2007/02/09/converting-office-documents-to-open-xml.aspx


    http://khason.net/blog/wordml-to-flowdocument-%e2%80%93-how-to-convert-docx-files-to-wpf-flowdocument/

    Und hier etwas nur für .doc Dateien
    à http://msdn.microsoft.com/en-us/library/aa140221(office.10).aspx

    Grüße,

    Robert

    Mittwoch, 25. November 2009 08:02
    Moderator
  • Schon mal danke für die Antworten.

    Also nochmal zu meinem Problem. Ich möchte in word den Text füllen. Dann das XMll Document bearbeiten und wieder ins word importieren. Dabei soll das word nicht geschlossen werden.

    Gbit es den keine Möglichkeit die ganze XML Dateie mittels VBA zu entpacken doer Exportieren?
    Meine versuchen lagen darin das ich versucht habe es zuerst als xml zu speichern und dann nochmal als docx damit die datei wieder freigegeben ist. Aber das ist sehr unsicher und dauert auch bei grossen Dateien etwas.
    Ein weiterer Versuch war die Word Datei zu entpacken währen das office noch offen ist, aber das wollte auch noch nicht so richtig gehn.

    Ich kann zum export nur vba benutzten

     
    Mittwoch, 25. November 2009 12:29

  • Mit VBA XML Erzeugen und Einfügen

    WilliB

    ' VBA
    '   REFERENZ auf MSXML6 (Menü Extras-Verweise)
    '   bei Office2007 für andere OfficeVersionen ggf anpassen
    ' Im aktuellen Dokument  WordML ermitteln mit Range.XML
    ' speichern als XML Datei und wiedereinfügen am Ende des Dokuments
    
    Sub captureWordML()
        Dim XFilename As String
        Set XMLdoc = New MSXML2.DOMDocument60
    
        Dim wdRange As Word.Range
        Set wdRange = ActiveDocument.Content
        Debug.Print wdRange.XML
        
        XMLdoc.LoadXML wdRange.XML
        XFilename = ActiveDocument.FullName + ".wd.xml"
        XMLdoc.Save XFilename
        Debug.Print "Datei gespeichert: " + XFilename
    
        insertfromfile XFilename
    End Sub
    
    
    Sub insertfromfile(filename As String)
        Dim XMLdoc As MSXML2.DOMDocument60
        Dim XMLFileName As String
        Set XMLdoc = New MSXML2.DOMDocument60
        
        XMLdoc.Load (filename)
        
        ' Einfügeposition setzen
        Selection.MoveEnd
        Selection.InsertXML XMLdoc.DocumentElement.XML ', Transformation als zweiter Parameter möglich
    
    End Sub
    


    Dienstag, 1. Dezember 2009 09:15