我想制作一个导入脚本,允许用户将他们的 excel 文件(扩展名不重要)上传到我的 php 应用程序。
应用程序应该识别一个项目列表(到目前为止一切顺利)。
这种情况下的困难在于 Excel 文件包含图像......
我已阅读有关 phpexcel 库的信息,但它没有提及任何有关图像的信息。
有人有想法吗?
您可以通过以下方式访问图像PHPExcel 库.
对于导入图像:
$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();
}
}
然后 $imageContents 将包含您可以输出或保存为文件等的图像数据。
你可以看看这个问题:PHPExcel:如何在首页页眉中插入图像并将其放大以适合其内容?
用于访问图像:
活动工作表中所有图像对象的 ArrayObject 将通过以下方式返回:
$objPHPExcel->getActiveSheet()->getDrawingCollection() ;
这些对象将是PHPExcel_Worksheet_Drawing
or PHPExcel_Worksheet_MemoryDrawing
对象:您可以使用is_a()。然后,您可以使用适合该类的方法(如 API 中所述)从文件(对于 PHPExcel_Worksheet_Drawing 对象)或直接从 PHPExcel_Worksheet_MemoryDrawing 对象本身读取图像数据。这getName()
and getDescription()
方法可用于从图像对象中检索相关值。
现在还可以将图像对象与打印标题关联起来:
$objPHPExcel->getActiveSheet()->getHeaderFooter()->getImages()
可用于从页眉/页脚检索图像。这是 PHPExcel_Worksheet_HeaderFooterDrawing 对象的数组。所有 PHPExcel_Worksheet_Drawing 方法都可用于从这些对象中提取图像文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)