Ten SpreadSheetLight to jakaś nadbudówka na OpenXml 2.0, wygląda na to że nie dostarczają prostej funkcji do odczytu obrazka wrzuconego na arkusz.
Więc trzeba napisać własną (OpenXml v2):
static void Main(string[] args)
{
var spreadsheet = SpreadsheetDocument.Open(@"Zeszyt1.xlsx", true);
var workbookPart = spreadsheet.WorkbookPart;
var worksheetParts = workbookPart.WorksheetParts.FirstOrDefault();
foreach (var i in worksheetParts.DrawingsPart.ImageParts)
{
var id = worksheetParts.DrawingsPart.GetIdOfPart(i);
var stream = i.GetStream();
var length = stream.Length;
var byteStream = new byte[length];
stream.Read(byteStream, 0, (int) length);
var path = string.Format("{0}-ObrazekZExcela.jpg", id);
using (var imageFile = new FileStream(path, FileMode.Create))
{
imageFile.Write(byteStream, 0, byteStream.Length);
imageFile.Flush();
}
}
}