为了账号安全,请及时绑定邮箱和手机立即绑定

将远程图像添加到 PhpSpreadset 单元格

将远程图像添加到 PhpSpreadset 单元格

PHP
泛舟湖上清波郎朗 2022-10-14 14:57:30
网站上有一个简单的两列表:产品名称和产品图片。在 HTML 中呈现非常容易。该任务将创建一个包含这些列的 Xlsx 文件。图像不存储在本地,但它们都是具有完整 URL 的远程图像。导出包含 ~100-200 行。我尝试使用 imagecreatefromjpeg 创建资源并使用 MemoryDrawing 添加它,但它占用了大量资源。我尝试使用 Html 助手的 toRichTextObject 和一个简单的标签,但结果为空。如何将远程图像添加到 PhpSpreadsheet 单元格?它不需要离线工作,打开文件时加载远程图像就可以了。
查看完整描述

3 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

正如@FabriceFabiyi在他的评论中提到的,阅读后:

这对我有用:

$image = file_get_contents('https://website.com/path/to/image');

$imageName = 'a_nice_image_name';


//You can save the image wherever you want

//I would highly recommand using a temporary directory

$temp_image=tempnam(sys_get_temp_dir(), $imageName);

file_put_contents($temp_image, $image);


// And then PhpSpreadsheet acts just like it would do with a local image

$drawing->setPath($temp_image);

$drawing->setHeight(36);

$drawing->setWorksheet($sheet);

$drawing->setCoordinates('B15');

有关 PHP 文档中临时目录的更多信息:


查看完整回答
反对 回复 2022-10-14
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

有一个示例如何将图像添加到您的 excel 导出中:


$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();


$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();

$drawing->setName('Paid');

$drawing->setDescription('Paid');

$drawing->setPath('/images/image-1.png'); // put your path and image here

$drawing->setHeight(30);

$drawing->setCoordinates('A5');

$drawing->setOffsetX(110);

$drawing->setRotation(25);

$drawing->getShadow()->setVisible(true);

$drawing->getShadow()->setDirection(45);

$drawing->setWorksheet($spreadsheet->getActiveSheet());


查看完整回答
反对 回复 2022-10-14
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

根据示例和文档,指定图像的坐标可能会有所帮助

$objDrawing->setCoordinates('A3');

请注意,图像不在单元格/列/行中,而是覆盖在与该单元格/列/行相同的位置的主工作表上


查看完整回答
反对 回复 2022-10-14
  • 3 回答
  • 0 关注
  • 260 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信