PHPSPREADSheet So ersetzen Sie ein Bild in einer Vorlage
Posted: 16 Aug 2025, 22:41
Ist es möglich, Bilder in der vorhandenen Vorlagendatei auszutauschen? Jedes Bild hat seinen eigenen einzigartigen Namen/Titel (dh "ImageBanner_1"). Jedes Bild befindet sich an einem Ort, an dem sich bestimmte Diagramme im Arbeitsblatt befinden - aber nicht unbedingt an eine bestimmte Zelle gebunden ist. funktioniert: < /p>
Wie kann ich alle Eigenschaften von $ fimage erhalten? Vielleicht ist einer von ihnen der richtige Name, der auf ImageBanner_1
in meinen Excel -Vorlagen übereinstimmt. Ich habe die Namen (in Formeln -> Name Manager) als:
gebunden.
Erledigt das Echo Drucke:
, wodurch mir GetName () entweder eine Referenz auf den Wert oder GetName () ist tatsächlich Bild X ist. Wie kann ich die Namen imageBanner_x als Bezeichner verwenden? Ich weiß nicht, ob mein Code, das das Bild einfach durch einen SetPath ersetzt, funktioniert, denn zumindest nicht zum Bild kann ich tatsächlich zum Bild gelangen, weil GetName () Ausgabe ist.
TO
... Aber das Problem dabei ist, dass ich die genaue Bildnummer kennen muss, die ich ersetze. Dies ist nicht ideal, da die Bildnummer nicht ständig eine statische Zahl ist. In einigen Fällen repliziere ich Diagramme oder Bilder, in anderen>
Code: Select all
$fImages = $speadsheet->getSheetByName("Chart Data")->getDrawingCollection();
foreach ($fImages as $fImage) {
echo "\n".$fImage->getName() ;
if ($fImage->getName() == "imageBanner_1") {
$fImage->setPath("path/to/new/file/fileName.png") ;
}
}
in meinen Excel -Vorlagen übereinstimmt. Ich habe die Namen (in Formeln -> Name Manager) als:
gebunden.
Code: Select all
Name Value Refers To
imageBanner_1 Picture 9 =*Picture 9*
imageBanner_2 Picture 18 =*Picture 18*
imageBanner_3 Picture 21 =*Picture 21*
Code: Select all
Picture 9
Picture 18
Picture 21
Code: Select all
if ($fImage->getName() == "imageBanner_1") {
TO
Code: Select all
if ($fImage->getName() == "Picture 13") {
... Aber das Problem dabei ist, dass ich die genaue Bildnummer kennen muss, die ich ersetze. Dies ist nicht ideal, da die Bildnummer nicht ständig eine statische Zahl ist. In einigen Fällen repliziere ich Diagramme oder Bilder, in anderen>