gpt4 book ai didi

php - 使用 PHP 从 Excel 文件 (xlsx) 中提取图像

转载 作者:可可西里 更新时间:2023-11-01 00:49:19 27 4
gpt4 key购买 nike

如何使用 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_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 方法都可用于从这些对象中提取图像文件。

编辑

勺子喂食时间。

这将从当前事件的工作表中提取所有图像,并将它们写入服务器上的文件。

$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 开始的数字,extension 是图像类型的适当扩展名(png、jpg、gif 等)。

关于php - 使用 PHP 从 Excel 文件 (xlsx) 中提取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10910144/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com