@SilimAl
Telegram, VK, Instagram боты

Как выделить часть текста жирным в phpexcel?

Приветствую, коллеги!
Бьюсь два дня, поэтому решил написать сюда.
Есть php скрипт формирующий xlsx файл. В одну из ячеек необходимо вставить текст и часть его выделить жирным.
Текст формируется по принципу: Фикс.текст + переменная $out->suggestions[0]->values

Делал по учебнику:
$objRichText = new PHPExcel_RichText();
$objRichText->createText(''); //может и не нужен
$objPayable = $objRichText->createTextRun('Фиксированный текст');
$objPayable->getFont()->setBold(true);
$objRichText->createText($out->suggestions[0]->values); //через переменную типа $test = $out->suggestions[0]->values; тоже не идет


Дальше вывод: $page->setCellValue("B{$num2}", $objRichText);

Гуглил по всякому, в итоге фикс текст выводится, динамическая часть нет.. Если заменить дин.часть текстом все ОК, но мне нужно именно со сменой данных.

И даже при вводе текста он не реагирует на условия в части шрифта (шрифт, размер)

Кто сталкивался с подобным, как решить, подскажите.
  • Вопрос задан
  • 1277 просмотров
Решения вопроса 1
@SilimAl Автор вопроса
Telegram, VK, Instagram боты
В конечном итоге сделал всё через PHPExcel_RichText().
Переделал вывод в ячейку и всё заработало как надо, думаю в этом и была проблема.
Сделал два createTextRun для возможности указать шрифт в первой и второй части принудительно, иначе шрифт и размер менялся непонятным образом.
$objKOMYrichText = new PHPExcel_RichText();
$objKOMY = $objKOMYrichText->createTextRun('Кому: ');
$objKOMY->getFont()->setBold(true);
$objKOMY->getFont()->setName('Times New Roman');
$objKOMY->getFont()->setSize(16);                           
$objKOMY2 = $objKOMYrichText->createTextRun($out->suggestions[0]->value);
$objKOMY2->getFont()->setName('Times New Roman');
$objKOMY2->getFont()->setSize(16);     
$xls->getActiveSheet()->getCell("B{$num2}")->setValue($objKOMYrichText);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
glaphire
@glaphire
PHP developer
PHPExcel уже давно не поддерживается, но можно черпать примеры из юнит тестов, тут есть для rich text (ссылка).
UPD. Кстати пример вполне в тему, потому что там можно подготовить html код и как раз в шаблоне обернуть тегом < b > только то, что нужно, а не весь текст
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы