Как преобразовать фигуру в изображение из excel (xls и xlsx) с помощью NPOI (C#)
Я пишу код, чтобы получить все изображения, включая фигуры, из Excel (в XLS и XLSX-файл) с помощью С# и NPOI (версия 2.2.1) Библиотека. Цель состоит в том, чтобы получить все изображения, включая фигуры, из выбранного файла Excel, а затем сохранить его в указанном каталоге.
Моя проблема в том, что я не могу найти никакого метода для преобразования этих данных формы из Excel в изображение и сохранения их в указанном каталоге? Что-то не так с кодом, который я пишу? Или, может быть, есть другое решение (используя NPOI конечно), который я могу использовать для получения фигур из файла Excel (xls или xlsx)?
Что я уже пробовал:
Через некоторое время проб-ошибок и просмотра любых ссылок я смог получить все изображения из Excel с помощью этого кода (я поставил код для чтения формата xls),
var lst = workbook.GetAllPictures(); for (int i = 0; i < lst.Count; i++) { var pic = (HSSFPictureData)lst[i]; byte[] data = pic.Data; /*Save Image From Byte[]*/ }
Но я не могу получить фигуры в Excel с помощью этого кода, поэтому я пытаюсь найти любой другой метод и, наконец, я нашел какой-то код, который может получить список изображений и фигур, существующих в листе Excel,
вот фрагмент кода (также код для чтения файла формата xls),
var dr = workbook.GetSheetAt(sht).DrawingPatriarch; HSSFPatriarch pat = (HSSFPatriarch)dr; var shape = pat.Children; int i = 0; foreach (var s in shape) { string patType = s.GetType().ToString(); switch (patType) { case "NPOI.HSSF.UserModel.HSSFSimpleShape": { var simpleshape = (HSSFSimpleShape)s; /*Save Shape*/ break; } case "NPOI.HSSF.UserModel.HSSFPicture": { var pic = (HSSFPicture)s; byte[] data = pic.PictureData.Data; /*Code to Save Image From Byte[]*/ break; } default: break; } }
И когда я ставлю точку останова на оператор foreach и смотрю, он показывает список изображений и фигур, которые мне нужно сохранить.
С помощью этого кода я могу получить и сохранить данные его изображения (HSSFPicture), Но я не могу найти никакого метода или свойств для преобразования или сохранения данных формы (HSSFSimpleShape) к Изображение.