$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 のすべてのメソッドを使用して、これらのオブジェクトから画像ファイルを抽出できます。
編集
スプーンフィーディングタイム。
これにより、現在アクティブなワークシートからすべての画像が抽出され、サーバー上のファイルに書き込まれます。
$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);
}
ファイルには名前が付けられます
00_Image_n.extension
ここで、n は 1 から始まる数値で、extension は画像の種類に適した拡張子 (png、jpg、gif など) です。