针对将数据图片导出到 excel 中的需求,我们可以根据题主提供的示例代码进行修改。导出图片时,excel 无法直接识别网络上的图片链接,需要将图片下载到本地再进行导出。
具体修改如下:
在循环遍历数据时,将每张图片的网络链接转换为本地路径:
$imageurl = $item['img']; $gdimage = imagecreatefromjpeg($imageurl);
登录后复制
使用 imagecreatefromjpeg() 函数将图片从网络下载到本地,并保存为 $gdimage 变量。
接下来,使用 phpexcel_worksheet_memorydrawing 类创建图片对象,并设置其属性:
$objdrawing = new phpexcel_worksheet_memorydrawing(); $objdrawing->setname('sample image'); $objdrawing->setdescription('sample image'); $objdrawing->setimageresource($gdimage); $objdrawing->setrenderingfunction(phpexcel_worksheet_memorydrawing::rendering_jpeg); $objdrawing->setmimetype(phpexcel_worksheet_memorydrawing::mimetype_default); $objdrawing->setheight(150); $objdrawing->setcoordinates($k . $highestrow);
登录后复制
- setimageresource() 设置图片资源。
- setrenderingfunction() 设置图片呈现格式为 jpeg。
- setmimetype() 设置图片 mime 类型。
- setheight() 设置图片高度为 150 像素。
- setcoordinates() 设置图片在工作表中的坐标,以 $k$highestrow 表示,其中 $k 是列名称,$highestrow 是行号。
最后,将图片对象添加到工作表中:
$objDrawing->setWorksheet($sheet);
登录后复制