No olvides que en las ciencias informáticas un error casi siempere puede tener diversas soluciones, de igual modo nosotros aquí te mostramos lo más óptimo y mejor.
Solución:
Alguien, no sé si es usted mismo, ha hecho una pregunta similar en el tablero de PHPExcel… que aún no he podido responder.
$objPHPExcel->getActiveSheet()->getDrawingCollection()
devolverá un ArrayObject de todos los objetos de imagen en la hoja de trabajo activa.
Estos objetos serán objetos PHPExcel_Worksheet_Drawing o PHPExcel_Worksheet_MemoryDrawing: puede identificar cuáles usando is_a(). Luego puede usar los métodos apropiados para esa clase (como se describe en la API) para leer los datos de la imagen del archivo (para objetos PHPExcel_Worksheet_Drawing) o directamente desde el propio objeto PHPExcel_Worksheet_MemoryDrawing. Los métodos getName() y getDescription() se pueden usar para recuperar los valores relevantes del objeto de imagen.
Tenga en cuenta que también es posible tener objetos de imagen asociados con encabezados de impresión:
$objPHPExcel->getActiveSheet()->getHeaderFooter()->getImages()
se puede utilizar para recuperar imágenes del encabezado/pie de página. Esto es un array de objetos PHPExcel_Worksheet_HeaderFooterDrawing. Todos los métodos PHPExcel_Worksheet_Drawing se pueden usar para extraer el archivo de imagen de estos objetos.
EDITAR
Basado en su código en la pregunta modificada:
$drawing->getName();
debería darte lo que necesitas
He visto el ejemplo de lectura de imágenes de una hoja de trabajo, funciona bien, pero personalicé el mismo ejemplo para los requisitos de mi proyecto como se muestra a continuación.
require 'vendor/autoload.php';
$spreadsheet = PhpOfficePhpSpreadsheetIOFactory::load("./excel.xlsx");
$worksheet = $spreadsheet->getActiveSheet();
$worksheetArray = $worksheet->toArray();
array_shift($worksheetArray);
echo '';
echo '';
echo 'Sno ';
echo 'Name ';
echo 'Image ';
echo ' ';
foreach ($worksheetArray as $key => $value)
$worksheet = $spreadsheet->getActiveSheet();
$drawing = $worksheet->getDrawingCollection()[$key];
$zipReader = fopen($drawing->getPath(), 'r');
$imageContents = '';
while (!feof($zipReader))
$imageContents .= fread($zipReader, 1024);
fclose($zipReader);
$extension = $drawing->getExtension();
echo '';
echo '' . $value[0] . ' ';
echo '' . $value[1] . ' ';
echo '
';
echo ' ';
Producción:
Creé el proyecto de demostración de GitHub “phpspreadsheet-Reading-Images-from-an-Excel-File” para referencia futura.
Enlace Github: https://github.com/rajaramtt/phpspreadsheet-Reading-Images-from-an-Excel-File
valoraciones y comentarios
Eres capaz de confirmar nuestro análisis fijando un comentario y dejando una puntuación te estamos eternamente agradecidos.
¡Haz clic para puntuar esta entrada!(Votos: 0 Promedio: 0)
Utiliza Nuestro Buscador