我有一个电子表格,我想用PHP导入.我可以使用PHPExcel导入单元格数据,但无法弄清楚如何使用电子表格中的图像.
有没有办法做到这一点然后使用PHP中的图像保存到服务器等?
非常感谢您的帮助!:)
更新:
@ mark-baker - 非常感谢你对此的帮助!
我在一个带有一个JPG的测试XLS文件中使用了下面的代码:
$objPHPExcel = PHPExcel_IOFactory::load("SH.xls");
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();
}
}
Run Code Online (Sandbox Code Playgroud)
我想我可以输出JPEG标题和$imageContents显示图像的内容.
我如何获得电子表格中图像的实际名称,例如"Picture1"?PHPExcel_Worksheet_MemoryDrawing可以实现吗?
我不能够感谢你!
有人,我不知道是不是你自己,在 PHPExcel 板上提出了类似的问题......我还没有时间回答。
$objPHPExcel->getActiveSheet()->getDrawingCollection()
Run Code Online (Sandbox Code Playgroud)
将返回活动工作表中所有图像对象的 ArrayObject。
这些对象将是 PHPExcel_Worksheet_Drawing 或 PHPExcel_Worksheet_MemoryDrawing 对象:您可以使用is_a()来识别哪个对象。然后,您可以使用适合该类的方法(如 API 中所述)从文件(对于 PHPExcel_Worksheet_Drawing 对象)或直接从 PHPExcel_Worksheet_MemoryDrawing 对象本身读取图像数据。getName() 和 getDescription() 方法可用于检索图像对象的相关值。
请注意,也可以将图像对象与打印标题关联:
$objPHPExcel->getActiveSheet()->getHeaderFooter()->getImages()
Run Code Online (Sandbox Code Playgroud)
可用于从页眉/页脚检索图像。这是 PHPExcel_Worksheet_HeaderFooterDrawing 对象的数组。所有 PHPExcel_Worksheet_Drawing 方法都可用于从这些对象中提取图像文件。
编辑
根据修改后的问题中的代码:
$drawing->getName();
Run Code Online (Sandbox Code Playgroud)
应该给你你需要的东西