2014-11-26 2 views
2

Я заметил, что разработчик PHPExcel читает этот форум, поэтому я форматирую свою проблему как прямой вопрос к нему.PHPExcel - почему нет метода cell-> setStyle()?

Я пытаюсь взять полный стиль ячейки из документа Excel Excel и скопировать его в новый документ.

Насколько я могу судить, существует метод Cell-> getStyle(), который возвращает объект стиля. Но нет способа применить этот объект стиля к другой ячейке.

Чтобы применить стиль, нужно использовать другую функцию, Cell-> getStyle ('A1') -> applyFromArray ($ styleArray). Эта функция использует другой форматирующий вход - массив стилей. И нет способа конвертировать из объекта стиля в массив стилей. Почему это? Почему здесь нет метода cell-> setStyle()?

Я также заметил, что есть еще один способ, который может помочь мне, Worksheet-> duplicateStyle():

$targetWorksheet->duplicateStyle(
    $sourceWorksheet->getStyle($sourceCellCoordinate), 
    $targetCellCoordinate 
); 

Но, при использовании этого метода для копирования TemplateA1-> TargetA1, то TemplateB2-> TargetB2 , в момент, когда я копирую вторую ячейку, первая ячейка (TargetA1) получает повторный стиль, чтобы также иметь второй стиль (TargetB2). Так что это не работает.

Я потратил около часа на это, и следующим шагом, вероятно, будет реализация преобразования объекта style -> style.

Любая помощь будет оценена по достоинству.

Спасибо!

ответ

1

Это уже был дан ответ на это внешнее обсуждение: https://phpexcel.codeplex.com/discussions/286662

Worksheet-> duplicateStyle() действительно не работает через файлы. Но есть временное решение: временно добавьте исходный лист в целевой документ в качестве нового листа, используя addExternalSheet(), скопируйте форматирование, затем снова удалите временный лист.

Я все еще не нашел ответа, почему нет метода cell-> setStyle().

Смежные вопросы