Phpspreadsheet 使用PHPSReadSheet在excel中添加多个图像
此问题通过解决方法解决。如果我使用excel中的PhpSpreadsheet复制多个图像,并且具有相同的图像名称和不同的路径,则只会多次添加最后一个图像。但是如果我用不同的名字重命名图像,它就可以正常工作了。例如,如果我将Phpspreadsheet 使用PHPSReadSheet在excel中添加多个图像,phpspreadsheet,phpoffice,Phpspreadsheet,Phpoffice,此问题通过解决方法解决。如果我使用excel中的PhpSpreadsheet复制多个图像,并且具有相同的图像名称和不同的路径,则只会多次添加最后一个图像。但是如果我用不同的名字重命名图像,它就可以正常工作了。例如,如果我将path1/thumb.png和path2/thumb.png复制到excel,那么path2/thumb.png将被复制两次。但是如果我复制,path1/image1.png和path2/image2.png,它就可以正常工作了。范例 <?php require 've
path1/thumb.png
和path2/thumb.png
复制到excel,那么path2/thumb.png
将被复制两次。但是如果我复制,path1/image1.png和path2/image2.png
,它就可以正常工作了。范例
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$name = "image.xlsx";
$writer = new Xlsx($spreadsheet);
$writer->save($name);
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
//$drawing->setPath("path1/thumb.png"); I AM COPING AND UPDATING NAME
copy("path1/thumb1.png","thumb1.png");//WORKAROUND FOR THIS ISSUE
$drawing->setPath("thumb1.png");
$drawing->setName('Logo');
$drawing->setCoordinates('B2');
$drawing->setWidthAndHeight(500, 500);
$drawing->setWorksheet($spreadsheet->setActiveSheetIndex(0));
$writer->save( $name );
$writer2 = new Xlsx($spreadsheet);
$writer2->save($name);
$writer2 = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$drawing1 = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
//$drawing->setPath("path2/thumb.png"); THIS WILL OVERWRITE ABOVE path1/thumb1.png, and will be inserted twice.
copy("path2/thumb1.png","thumb2.png");//WORKAROUND FOR THIS ISSUE
$drawing1->setPath("thumb2.png");
$drawing->setName('New image');
$drawing1->setCoordinates('B24');
$drawing1->setWidthAndHeight(500, 500);
$drawing1->setWorksheet($spreadsheet->setActiveSheetIndex(0));
$writer2->save( $name );
?>
…您可以用
$writer2=新的Xlsx($spreadsheet)代码>
第一个图像
试一试
我尝试了您的代码,没有发现任何差异。完全相同的结果。
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$name = "image.xlsx";
$writer = new Xlsx($spreadsheet);
$writer->save($name);
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
$drawing->setPath("thumb1.png");
$drawing->setName('Logo');
$drawing->setCoordinates('B2');
$drawing->setWidthAndHeight(500, 500);
$drawing->setWorksheet($spreadsheet->setActiveSheetIndex(0));
$drawing1 = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
$drawing1->setPath("thumb2.png");
$drawing1->setName('New image');
$drawing1->setCoordinates('B24');
$drawing1->setWidthAndHeight(500, 500);
$drawing1->setWorksheet($spreadsheet->setActiveSheetIndex(0));
$writer->save( $name );
?>