$objPHPExcel->getActiveSheet()->getDrawingCollection()
은 활성 워크 시트에있는 모든 이미지 객체의 ArrayObject를 반환합니다.
이러한 객체는 PHPExcel_Worksheet_Drawing 또는 PHPExcel_Worksheet_MemoryDrawing 객체 중 하나입니다. [is_a()] [1]을 사용하여 식별 할 수 있습니다. 그런 다음 해당 클래스에 적합한 메소드 (API에 설명 된대로)를 사용하여 PHPExcel_Worksheet_Drawing 객체의 파일에서 이미지 데이터를 읽거나 PHPExcel_Worksheet_MemoryDrawing 객체에서 직접 읽을 수 있습니다. getName() 및 getDescription() 메서드를 사용하여 이미지 객체에 대한 관련 값을 검색 할 수 있습니다. 이 인쇄 헤더와 관련된 이미지 오브젝트를 가질 수도 있음을
참고 :
$objPHPExcel->getActiveSheet()->getHeaderFooter()->getImages()
는 머리글/바닥 글에서 이미지를 검색 할 수 있습니다. 이것은 PHPExcel_Worksheet_HeaderFooterDrawing 객체의 배열입니다. 모든 PHPExcel_Worksheet_Drawing 메소드를 사용하여 이러한 객체에서 이미지 파일을 추출 할 수 있습니다.
편집
시간을 Spoonfeeding.
그러면 현재 활성 워크 시트의 모든 이미지가 추출되어 서버의 파일에 기록됩니다.
$objPHPExcel = PHPExcel_IOFactory::load($path);
$i = 0;
foreach ($objPHPExcel->getActiveSheet()->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();
switch ($drawing->getMimeType()) {
case PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_PNG :
$extension = 'png'; break;
case PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_GIF:
$extension = 'gif'; break;
case PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_JPEG :
$extension = 'jpg'; break;
}
} else {
$zipReader = fopen($drawing->getPath(),'r');
$imageContents = '';
while (!feof($zipReader)) {
$imageContents .= fread($zipReader,1024);
}
fclose($zipReader);
$extension = $drawing->getExtension();
}
$myFileName = '00_Image_'.++$i.'.'.$extension;
file_put_contents($myFileName,$imageContents);
}
파일은 n은 1부터 시작되는 번호이다
00_Image_n.extension
이름 및 확장은 콘텐츠 타입에 대한 적절한 확장 (PNG, JPG, GIF, 어떤)이다된다.
지금까지 해보신 것은 무엇입니까? 질문을 편집하여 코드를 볼 수 있습니다. –
코드를 복사했습니다 ... 아래에서 확인할 수 있습니다. – rSara
질문을 편집하고 코드를 추가해야합니다. 방금 해 주셨습니다. 코드를 표시하기 위해 게시 한 답변을 삭제하십시오. –