На основе использования имени изображения можно ли заменить изображение другим, чтобы новое изображение было в том же месте, что и в оригинальном, и сохраняет все оригинальные свойства изображения (тень, ширина/длина, и т. Д. Работал: < /p>
Код: Выделить всё
$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") ;
}
}
В моих шаблонах Excel я связал имена (в Formulas -> Manager) как:
Код: Выделить всё
Name Value Refers To
imageBanner_1 Picture 9 =*Picture 9*
imageBanner_2 Picture 18 =*Picture 18*
imageBanner_3 Picture 21 =*Picture 21*
Код: Выделить всё
Picture 9
Picture 18
Picture 21
=============
.
Код: Выделить всё
if ($fImage->getName() == "imageBanner_1") { Код: Выделить всё
if ($fImage->getName() == "Picture 13") {... Но проблема с этим я должен знать точный номер изображения, который я заменяю. Это не идеально, так как номер изображения не является статическим номером все время. В некоторых случаях я повторяю диаграммы или изображения, в других я заменяю ... esp, когда речь идет о копировании, будет довольно сложно узнать точный номер изображения каждый раз, когда я запускаю скрипт с разными наборами данных.
Подробнее здесь: https://stackoverflow.com/questions/731 ... a-template
Мобильная версия