如何将网络图片导出到 Excel 表格?

针对将数据图片导出到 excel 中的需求,我们可以根据题主提供的示例代码进行修改。导出图片时,excel 无法直接识别网络上的图片链接,需要将图片下载到本地再进行导出。

具体修改如下:

在循环遍历数据时,将每张图片的网络链接转换为本地路径:

$imageurl = $item['img'];
$gdimage = imagecreatefromjpeg($imageurl); 

使用 imagecreatefromjpeg() 函数将图片从网络下载到本地,并保存为 $gdimage 变量。

接下来,使用 phpexcel_worksheet_memorydrawing 类创建图片对象,并设置其属性:

$objdrawing = new phpexcel_worksheet_memorydrawing();
$objdrawing-youjiankuohaophpcnsetname('sample image');
$objdrawing-youjiankuohaophpcnsetdescription('sample image');
$objdrawing-youjiankuohaophpcnsetimageresource($gdimage);
$objdrawing-youjiankuohaophpcnsetrenderingfunction(phpexcel_worksheet_memorydrawing::rendering_jpeg);
$objdrawing-youjiankuohaophpcnsetmimetype(phpexcel_worksheet_memorydrawing::mimetype_default);
$objdrawing-youjiankuohaophpcnsetheight(150); 
$objdrawing-youjiankuohaophpcnsetcoordinates($k . $highestrow); 
  • setimageresource() 设置图片资源。
  • setrenderingfunction() 设置图片呈现格式为 jpeg。
  • setmimetype() 设置图片 mime 类型。
  • setheight() 设置图片高度为 150 像素。
  • setcoordinates() 设置图片在工作表中的坐标,以 $k$highestrow 表示,其中 $k 是列名称,$highestrow 是行号。

最后,将图片对象添加到工作表中:

$objDrawing-youjiankuohaophpcnsetWorksheet($sheet);