Laden...

OpenXML - Extract embedded ppt

Erstellt von ChrisCC6 vor 3 Jahren Letzter Beitrag vor 3 Jahren 1.008 Views
C
ChrisCC6 Themenstarter:in
2 Beiträge seit 2021
vor 3 Jahren
OpenXML - Extract embedded ppt

Hallo zusammen,

ich verzweifele gerade, da ich absolut auf dem Schlauch zu stehen scheine.

Mein Problem: ich möchte aus einem Excel 2007 eine oder mehrere eingebettete PowerPoint-Dateien exportieren bzw. öffnen.

Ich habe bereits den Hinweis von Abt gelesen:

Extract embedded files from Office documents (CSOfficeDocumentFileExtractor)

aus diesem Beitrag: OLE PDF Speichern (gelößt)

Der referenzierte Artikel ist leider nicht mehr verfügbar. Hat jemand evtl. einen Hinweis oder Codeschnipsel der mich in die richtige Richtung weist?

Ich habe mir ein xml-File erzeugt über:


using (SpreadsheetDocument document = SpreadsheetDocument.Open(fileName, false))
{
     string xmlDoc = document.ToFlatOpcString();
     //...
     File.WriteAllText(path, xmlDoc)
}

Im xml sehe ich die Datei wie folgt:


<pkg:part pkg:name="/xl/embeddings/Microsoft_PowerPoint_97-2003_Presentation.ppt" pkg:contentType="application/vnd.ms-powerpoint" pkg:compression="store">

Viele Grüße
Chris

- keep on keepin on -
16.828 Beiträge seit 2008
vor 3 Jahren

Wenn Du den Titel meines referenzierten Links einfach in Google eintippst, dann findest Du das GitHub Repo dazu.
Gallery Archiv

Offenbar wurde heute Nacht die Gallery archiviert.
Man muss sich nur zu helfen wissen 😉

C
ChrisCC6 Themenstarter:in
2 Beiträge seit 2021
vor 3 Jahren

Hallo Apt,

schön hier jemanden aus der Region zu treffen... 😉

Ich habe den Wald vor lauter Bäumen nicht gesehen. Zwischenzeitlich habe ich die "Axt" gefunden.

Für den Fall, dass jemand einen ähnlichen Versuch unternimmt:


            using (SpreadsheetDocument document = SpreadsheetDocument.Open(fileName, false))
            {
                // get the Workbook
                DocumentFormat.OpenXml.Spreadsheet.Workbook workbook = document.WorkbookPart.Workbook;

                // get the sheet with the specific name where the embedded content is located
                DocumentFormat.OpenXml.Spreadsheet.Sheet sheet = (DocumentFormat.OpenXml.Spreadsheet.Sheet)workbook.Sheets.AsEnumerable().Where(x => x.GetAttribute("name", "").Value == "Messstellenplan").FirstOrDefault();

                if (sheet != null)
                {
                    // get the embedded objects
                    IEnumerable<EmbeddedObjectPart> embeddedObjects = document.WorkbookPart.GetPartById(sheet.Id).GetPartsOfType<EmbeddedObjectPart>();
                    // Do your stuff here...

                }
            }

- keep on keepin on -