Vous pouvez accéder aux images par PHPExcel library.
Pour importer des images:
$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();
}
}
Alors $ imageContents contiendra les données d'image que vous pouvez de sortie ou enregistrer dans un fichier, etc. Vous pouvez voir cette question: PHPExcel: How to insert an image in the first page header and enlarge it to fit it's content?
Pour accéder aux images:
ArrayObject de tous les objets image de la feuille de calcul active va revenir n par:
$objPHPExcel->getActiveSheet()->getDrawingCollection() ;
Ces objets seront soit des objets PHPExcel_Worksheet_Drawing
ou PHPExcel_Worksheet_MemoryDrawing
: vous pouvez identifier en utilisant is_a(). Vous pouvez ensuite utiliser les méthodes appropriées à cette classe (comme décrit dans l'API) pour lire les données d'image à partir du fichier (pour les objets PHPExcel_Worksheet_Drawing) ou directement à partir de l'objet PHPExcel_Worksheet_MemoryDrawing lui-même. Les méthodes getName()
et getDescription()
peuvent être utilisées pour extraire les valeurs pertinentes de l'objet image.
Maintenant, il est aussi possible d'avoir des objets d'image associés à des en-têtes d'impression:
$objPHPExcel->getActiveSheet()->getHeaderFooter()->getImages()
peut être utilisé pour récupérer des images de l'en-tête/pied de page. C'est un tableau d'objets PHPExcel_Worksheet_HeaderFooterDrawing. Toutes les méthodes PHPExcel_Worksheet_Drawing peuvent être utilisées pour extraire le fichier image de ces objets.
Mais comment obtenez-vous les images ?! – coderama
@RD: J'ai donné une solution pour accéder aux images aussi. –