I use PHPSpreadsheet to open an Excel-Sheet and exchange an image in cell A27. My actual code doesn't replace the image but add it as overlay to the existing image:
$inputFileName = $_SERVER['DOCUMENT_ROOT']."output/test.xlsx";
$spreadsheet = $reader->load($inputFileName);
$sheet = $spreadsheet->getActiveSheet();
// Remove old image --> Fails
$sheet->setCellValue("A27", "");
echo "Bild ".$pfad_bild." in Zelle ".$zelle." einfügen<br>";
$image_placer = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
$image_placer->setName("myimg");
$image_placer->setDescription("myimg");
$image_placer->setPath("path/to/new/image");
$image_placer->setHeight(500);
$image_placer->setCoordinates('A27');
$image_placer->setOffsetX(0);
$image_placer->setOffsetY(0);
$image_placer->setWorksheet($spreadsheet->getActiveSheet());
// Save file with new tmp-name
$writer = new Xlsx($spreadsheet);
$writer->save($inputFileName."_");
// Delete old file
unlink($inputFileName);
// Rename new file to correct name
rename($inputFileName."_", $inputFileName);
Does anyone has an idea how to delete the Image from the Cell?