Extracting images from an Excel file (xlsx) using PHP(使用PHP从Excel文件(Xlsx)中提取图像)
本文介绍了使用PHP从Excel文件(Xlsx)中提取图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使用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()][1]标识哪个对象。然后,您可以使用适用于该类的方法(如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,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等)。
这篇关于使用PHP从Excel文件(Xlsx)中提取图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:使用PHP从Excel文件(Xlsx)中提取图像
基础教程推荐
猜你喜欢
- 在多维数组中查找最大值 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01