none
InlineShapes.AddOLEObject als Verweis auf *.doc-Datei und NICHT als unabhängige Kopie -> in *.docx-Datei (OpenXML 2.5) RRS feed

  • Frage

  • Hallo Community,

    Mein Ziel ist es, eine .NET C# Anwendung zu schreiben, die es mir erlaubt, eine externe *.doc-Datei als Verweis in eine *.docx als OLE-Objekt einzubetten - NICHT als unabhängige Kopie. Das soll bevorzugt in OpenXML erfolgen.

    Die *.doc-Datei soll hierbei nicht in die *.docx kopiert werden. Es soll lediglich ein Verweis auf die *.doc im *.docx eingebettet werden. Selbstverständlich möchte ich den Inhalt der *.doc-Datei in meiner *.docx-Datei im OLE-Objekt sehen können (Text). Sobald ich auf das OLE-Objekt 'doppelklicke', soll die *.doc-Datei in einem eigenen Word-Fenster bearbeitet werden können. Wenn ich die *.doc-Datei speicher und schließe, soll im *.docx der letzte Bearbeitungsstand der *.doc zu sehen sein, auf die verwiesen wird. Die Original-*.doc-Datei im Arbeitsverzeichnis soll dann aber auch den letzten Bearbeitungsstand beinhalten.

    Ich möchte also nur auf der verwiesenen *.doc Datei im *docx arbeiten. Wenn ich die *.doc als OLE-Objekt in die *.docx hinzufüge soll KEINE unabhängige Kopie erstellt werden, die in die *.docx Datei abgelegt wird.

    Mein Arbeitsverzeichnis ist folgendermaßen aufgebaut:

    <root>

    - <*.doc> // Auf diese Datei wird im *.docx lediglich verwiesen. Diese Datei wird im *.docx bearbeitet

    - <*.docx> // In diese Datei wird die *.doc als OLE-Objekt eingebettet (Verweis)

    Ich nutze folgende MS-Dokumentation, da ich keinen Ansatz in OpenXML gefunden habe:

    URL: https://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.inlineshapes.addoleobject.aspx

    Folgender Source-Code erstellt im *.docx ein OLE-Objekt mit einer unabhängigen Kopie der *.doc Datei:

    wordDocument.InlineShapes.AddOLEObject(
    ref _objectMissing,
    ref objectFilename, // Filename == <ABSOLUTE_PATH> + <FILENAME>
    ref _objectFalse, // LinkToFile == FALSE
    ref _objectMissing, 
    ref _objectMissing, 
    ref _objectMissing,
    ref _objectMissing, 
    ref _objectMissing);


    Laut Dokumentation soll folgender Source-Code im *.docx ein OLE-Objekt mit einem VERWEIS auf die externe *.doc Datei erstellen:

    wordDocument.InlineShapes.AddOLEObject(
    ref _objectMissing,
    ref objectFilename, // Filename == <ABSOLUTE_PATH> + <FILENAME>
    ref _objectTrue, // LinkToFile == TRUE
    ref _objectMissing, 
    ref _objectMissing, 
    ref _objectMissing,
    ref _objectMissing, 
    ref _objectMissing);

    Allerdings wird in diesem Fall eben KEIN OLE-Objekt mit dem Verweis auf die externe *.doc-Datei in die *.docx-Datei als OLE-Objekt eingefügt.

    Ich bin mir absolut sicher, dass ich keinen Programmierfehler in meiner Logik habe.

    Kann es sich hierbei um einen Bug handeln?

    Ist das auch in OpenXML 2.5 möglich?

    Ich freue mich über jeden guten Hinweis. Auch würde ich mich sehr über einen Code Snippet freuen.

    Viele Grüße!




    • Bearbeitet mz.hotmail Dienstag, 21. April 2015 09:01
    Freitag, 6. März 2015 18:19