Laravel8.5 导出的Excel表格中显示图片,现在只显示数据库内的图片路径
检查下数据库内的图片路径是不是存在反斜杠,如果是的话需要把路径中的反斜杠替换成正斜杠
要在 Excel 中直接显示图片,需要进行以下步骤:
将图片转换为 base64 编码格式。
将 base64 编码格式的图片插入到 Excel 中。
下面是一个简单的示例,展示如何在 PHP 中将 base64 编码格式的图片插入到 Excel 中:
// 读取图片文件并转换为 base64 编码格式
$image = file_get_contents('/path/to/image.jpg');
$base64 = base64_encode($image);
// 创建 Excel 实例
$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
$worksheet = $spreadsheet->getActiveSheet();
// 将 base64 编码格式的图片插入到 Excel 中
$objDrawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
$objDrawing->setName('Image');
$objDrawing->setDescription('Image');
$objDrawing->setPath('/path/to/image.jpg');
$objDrawing->setImageResource(\PhpOffice\PhpSpreadsheet\Worksheet\Drawing::createFromPngData(base64_decode($base64)));
$objDrawing->setCoordinates('A1');
$objDrawing->setOffsetX(5);
$objDrawing->setOffsetY(5);
$objDrawing->setWidthAndHeight(100, 100);
$objDrawing->setWorksheet($worksheet);
// 输出 Excel 文件
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$writer->save('example.xlsx');
上述代码中,我们首先读取图片文件并将其转换为 base64 编码格式。然后,我们创建了一个 Excel 实例,并将 base64 编码格式的图片插入到 Excel 中。
需要注意的是,以上代码只是一个示例,实际使用时需要根据具体情况进行调整。