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
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 😉
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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...
}
}