Nehmen wir an, ich habe ein Arbeitsblatt sheet1
genannt, die ein Bild pic_001
Namen enthalten Wie kann ich dieses Bild als System.Drawing.Image
Objekt zu erhalten.Anfahrt/Lese Bild aus Excel-Datei (xlsx) mit EPPlus
2
A
Antwort
4
OK ich herausgefunden habe, wie man:
public static Image GetImage(string sheetname, ExcelPackage excelFile)
{
var sheet = excelFile.Workbook.Worksheets[sheetname];
var pic = sheet.Drawings["pic_001"] as ExcelPicture;
return pic.Image;
}
1
Alle xlsx-Dateien sind wirklich Zip-Dateien. Sie können die .xlsx-Erweiterung in .zip kopieren/umbenennen und selbst durch die Ordnerhierarchie navigieren. Navigiere zu xl/media, um deine Bilder zu sehen. Es gibt sicherlich effizientere Möglichkeiten, dies zu tun, aber dies ist eine schnelle und schmutzige Lösung, die die Arbeit erledigen wird.
Das wird nicht funktionieren, wenn ich viele Arbeitsblätter mit vielen Bildern haben, Bildnamen im Paket nicht das gleiche wie Bild/Zeichnung Namen das Arbeitsblatt. Ich bevorzuge direkten Zugriff auf das Bild, anstatt das Archiv zu extrahieren und XML-Dateien zu analysieren, um das richtige Bild zu finden. – MusuNaji