$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);
}
文件被命名爲
00_Image_n.extension
其中n是一個數從1開始,並且延伸爲所述圖像類型相應的擴展(PNG,JPG,GIF,等等)。
到目前爲止您嘗試過什麼?你可以編輯你的問題讓我們看看你的代碼。 –
我複製了我的代碼...您可以在下面看到它。 – rSara
您應該編輯問題本身,添加代碼。我剛剛爲你做了,所以請刪除你發佈給我們的代碼的答案。 –