Word Dokument als XML speichern

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ReneF.

    Word Dokument als XML speichern

    Hallo,

    ich habe ein Tool in VB programmiert, mit dem ich Worddateien nach XML speichere und entsprechend eines Schemas konvertiere (XSLT + Textersetzungen).
    Meine Idee war es, die Worddatei nach XML (word 2003) durch das Speichern von Word aus zu erstellen und dann mit entsprechenden Konvertierungen mein Ergebnis zu erreichen.
    Ansich hat alles soweit geklappt, nur dass dieses Tool nur auf dem PC, auf dem ich es programmiert habe, funktioniert.

    Bei anderen PCs bleibt das Tool beim Speichern nach XML hängen. Meiner Meinung nach in der Dritten der folgenden Zeilen:

    VB.NET-Quellcode

    1. Dim oWord As New Microsoft.Office.Interop.Word.Application
    2. oWord.Documents.Open(WordFile)
    3. oWord.ActiveDocument.SaveAs2(FileName:=XMLFile, FileFormat:=Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatXML)
    4. oWord.ActiveDocument.Close()


    Alles weitere scheint soweit zu funktionieren.

    Ich habe auf die Word-11.0 Libary verwiesen.

    Ich weiß nicht, warum es nicht auf anderen Systemen funktioniert. Habt ihr einen Tipp oder andere Anregungen für mich?
    Vllt wäre auch eine Alternative zum Speichern nach XML eine Überlegung wert.

    Vielen Dank für eure Hilfe, freue mich schon auf eure Hilfe.
    MfG Rene
    SaveAs bietet mir Studio nicht an. Aus Word heraus kenne ich das auch nur mit SaveAs.

    Ich finde es auch sehr merkwürdig, dass ich keine Meldung erhalte. Es wird Word gestartet, er öffnet die Datei, jedoch passiert dann nichts mehr.

    Vielleicht liegt es an den verschiedenen Wordversionen auf den Rechnern. Obwohl die Funktion seit Word 2003 in jeder Version funktionieren sollte. Zumindestens auf meinen Rechner klappt es. Ich habe es mit Word 2003, 2007 und 2013 erfolgreich umsetzen können. Habe jedoch nur eine Word-Libary hinzugefügt, da bei jeder weiteren ein Fehler beim Hinzufügen kommt.

    Gibt es vielleicht eine andere Möglichkeit (Programmierweise), um dieses XML vllt sogar ohne Word als Application zu starten speichen oder konvertieren zu können?

    Ich teste noch etwas, um vielleicht den Fehler noch genauer eingrenzen zu können.

    Vielen Dank

    petaod schrieb:


    [...] Was ist SaveAs2 ? [...]

    Das ist die Standard-Speichermethode in Word, die man auch zwingend benutzen sollte. "SaveAs2000" gibt es in Microsoft Office nicht.

    Du könntest es aber trotzdem mit SaveAs probieren, auch wenn Dir dann .Net einen "Fehler" ausgibt. Ein Blick in die Word-VBA-Hilfe kann da helfen. Dort auch mal die "CanSave"-Eigenschaft anschauen, ob die etwas bringt weiss ich aber nicht.

    Gruß, René

    mumpel schrieb:

    "SaveAs2000" gibt es in Microsoft Office nicht.
    Dann präzisieren wir mal:
    Diese Methode ist reserviert für Framework-interne Aufrufe.

    Office2010:
    SaveAs
    SaveAs2
    SaveAs2000 (reserved for internal use)

    Office2003:
    SaveAs
    SaveAs2000 (not intended to be used directly from your code)
    SaveAs2 gibt's unter 2003 nicht.

    Wenn du also SaveAs2 verwendest und der Zielrechner nur Office2003 installiert hat, muss das schief gehen.
    Mich stört lediglich, dass du nicht auf einen Runtime-Fehler läufst.
    Hast du da ein blödes Try-Catch drin?

    Jedenfalls solltest du in der Word 11.0-Library kein SaveAs2 verwenden.
    Wenn dir die IDE kein SaveAs anbietet, ist da irgendwas faul.

    mumpel schrieb:

    Das ist die Standard-Speichermethode in Word, die man auch zwingend benutzen sollte.
    Solange du keine erweiterten Features verwendest, die in SaveAs nicht unterstützt sind, gibt es keinen zwingenden Grund.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „petaod“ ()

    Vielen Dank für Eure Hilfe,

    das hat jetzt super funktioniert.
    Ich verwende jetzt nur noch SaveAs und es funktioniert mit allen Word-Versionen, die ich hier gefunden habe. Die IDE hat mir nur SaveAs2 angeboten, es wird aber bei SaveAs kein Fehler angezeigt.

    MfG, René