PhpSpreadsheet 导出带图片
时间: 2023-12-03 15:59:58 浏览: 40
PhpSpreadsheet可以将Excel表格中的图片导出,只需要在导出Excel时对图片进行处理即可。
首先需要将图片插入到Excel表格中,可以使用`PhpSpreadsheet\Worksheet\Drawing`类来实现。例如:
```php
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
// 创建一个 Drawing 对象
$drawing = new Drawing();
$drawing->setName('Logo');
$drawing->setDescription('Logo');
$drawing->setPath('path/to/image.jpg');
$drawing->setHeight(50);
$drawing->setCoordinates('A1');
// 将 Drawing 对象添加到工作表中
$worksheet->getRowDimension(1)->setRowHeight(80);
$worksheet->getColumnDimension('A')->setWidth(30);
$worksheet->setCellValue('A1', '这是一个带有图片的单元格');
$worksheet->setDrawing($drawing);
```
上面的代码中,我们创建了一个Drawing对象,并设置了图片的路径、高度、位置等属性。然后将Drawing对象添加到工作表中,再将单元格的值设置为图片的描述。
接下来,可以使用`PhpSpreadsheet\IOFactory`类将工作表导出为Excel文件。例如:
```php
use PhpOffice\PhpSpreadsheet\IOFactory;
// 创建一个工作簿对象
$spreadsheet = new Spreadsheet();
$worksheet = $spreadsheet->getActiveSheet();
// 插入图片到工作表中
// 导出Excel文件
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('path/to/exported.xlsx');
```
这样就可以将带有图片的Excel表格导出了。需要注意的是,导出的Excel文件中可能会出现图片失真或者位置偏移的情况,需要根据实际情况进行调整。