Вы можете получить доступ к изображениям с помощью библиотеки PHPExcel .
Для импорта изображений:
$objPHPExcel = PHPExcel_IOFactory::load("MyExcelFile.xls");
foreach ($objPHPExcel->getSheetByName("My Sheet")->getDrawingCollection() as $drawing) {
if ($drawing instanceof PHPExcel_Worksheet_MemoryDrawing) {
ob_start();
call_user_func(
$drawing->getRenderingFunction(),
$drawing->getImageResource()
);
$imageContents = ob_get_contents();
ob_end_clean();
}
}
Тогда $ imageContents будет содержать данные изображения, которые можно вывести или сохранить в виде файла и т. Д.
Вы можете увидеть этот вопрос: PHPExcel: Как вставить изображение в заголовок первой страницы и увеличить его, чтобы оно соответствовало содержанию?
Для доступа к изображениям:
ArrayObject всех объектов изображения в активном рабочем листе вернется по:
$objPHPExcel->getActiveSheet()->getDrawingCollection() ;
Эти объекты будут либо PHPExcel_Worksheet_Drawing
, либо PHPExcel_Worksheet_MemoryDrawing
объектами: вы можете определить, какие из них, используя is_a () . Затем можно использовать методы, соответствующие этому классу (как описано в API), либо для чтения данных изображения из файла (для объектов PHPExcel_Worksheet_Drawing), либо непосредственно из самого объекта PHPExcel_Worksheet_MemoryDrawing. Методы getName()
и getDescription()
могут использоваться для извлечения соответствующих значений из объекта изображения.
Теперь также возможно иметь объекты изображения, связанные с заголовками печати:
$objPHPExcel->getActiveSheet()->getHeaderFooter()->getImages()
может использоваться для извлечения изображений из верхнего / нижнего колонтитула. Это массив объектов PHPExcel_Worksheet_HeaderFooterDrawing. Все методы PHPExcel_Worksheet_Drawing можно использовать для извлечения файла изображения из этих объектов.