Laravel8.5

Laravel8.5 导出的Excel表格中显示图片,现在只显示数据库内的图片路径

检查下数据库内的图片路径是不是存在反斜杠,如果是的话需要把路径中的反斜杠替换成正斜杠

要在 Excel 中直接显示图片,需要进行以下步骤:

  1. 将图片转换为 base64 编码格式。

  2. 将 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 中。

需要注意的是,以上代码只是一个示例,实际使用时需要根据具体情况进行调整。