Страницы

Поиск по вопросам

четверг, 2 января 2020 г.

Как сделать перенос в ячейке при работе с phpexcel

#phpexcel #php


Доброго всем времени суток господа
Пользуюсь phpexcel'ем, причем не первый день. Одну штуковину упорно не могу найти
в мануале (или нет ее там). Ищу перенос внутри ячейки. Вот допустим вам нужно вставить
200 знаков в ячейку, и они не влезают. В экселе есть кнопка - перенос текста. Вот интересует
как нужную ячейку отформатировать, что бы этот перенос был. Можно ли так вообще?
Смысл в том, что текст помещается в ячейке, путем автоматического переноса по строкам.
Вот собственно и все, только команды не знаю, ее и спрашиваю.
p.s.
// выдернул из кода

// выравниваю как надо
$page->getStyle("".$jax."".$stroka."")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
$page->getStyle("".$jax."".$stroka."")->applyFromArray(array("font" => array( "bold"
=> true)));

// вставляю данные, и проклятая переменная $for, неприлично длинная
$page->setCellValue("".$jax."".$stroka."", "".$for."");
    


Ответы

Ответ 1



Насколько мне не изменяет память, то так: $page->getStyle("".$jax."".$stroka."")->getAlignment()->setWrapText(true);

Ответ 2



Вместо \n ввести chr(10) - перевод каретки

Ответ 3



Если нам известно количество объединенных ячеек, то вот такой вариант работает и для объединенной ячейки: $file->setActiveSheetIndex(0)->getStyle('D1:E1')->getAlignment()->setWrapText(true); Похоже, что любой стиль будет работать таким образом для объединенных ячеек.

Ответ 4



Применить стили из массива $objPHPExcel->getActiveSheet()->getStyle('B2')->getAlignment()->applyFromArray( array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, 'rotation' => 0, 'wrap' => TRUE ) );

Комментариев нет:

Отправить комментарий