使用PHP从Excel文件(Xlsx)中提取图像

原学程将引见应用PHP从Excel文件(Xlsx)中提与图象的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

使用PHP从Excel文件(Xlsx)中提取图像 教程 第1张

成绩描写

怎样应用PHPExcel从EXCEL文件中读与图象,并将图象保留在办事器中并显示?文件的扩大名为.xlsx。

我的代码:

$objPHPExcel = PHPExcel_IOFactory::load($path);

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();
 }

}

感谢!!

推举谜底

$objPHPExcel->getActiveSheet()->getDrawingCollection()

将前往运动任务表中一切图象对于象的ArrayObject。

这些对于象将是PHPExcel_WORKSHEET_DRANGING或者PHPExcel_WORKSHEET_Memory Drawing对于象:您不妨应用[is_a()][一]标记哪一个对于象。而后,您不妨应用实用于该类的办法(如API中所述)从文件(关于PHPExcel_WORKSHEET_DRANGING对于象)或者直交从PHPExcel_WORKSHEET_MhemyDrawing对于象自己读与图象数据。不妨应用getName()以及getDescription()办法检索图象对于象的相干值。

请留意,也能够将图象对于象与挨印页眉相干联:

$objPHPExcel->getActiveSheet()->getHeaderFooter()->getImages()

可用于从页眉/页足检索图象。这是PHPExcel_WorkSheet_HeaderFooterDrawing对于象的数组。一切PHPExcel_WORKSHEET_DRANGING办法皆可用于从这些对于象提与图象文件。

编纂

勺子喂食时光。

这将从以后运动的任务表中提与一切图象,并将它们写进办事器上的文件。

$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,一0二四);
  }
  fclose($zipReader);
  $extension = $drawing->getExtension();
 }
 $myFileName = '00_Image_'.++$i.'.'.$extension;
 file_put_contents($myFileName,$imageContents);
}

文件名

00_Image_n.extension

个中n是从一开端的数字,扩大名是图象典型的响应扩大名(png、jpg、gif等)。

佳了闭于应用PHP从Excel文件(Xlsx)中提与图象的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。