PHPSpreadsheet - написание htmlentities / преобразование в соответствующие символы - PullRequest
0 голосов
/ 23 января 2019

Я использую PHPSPreadsheet 1.6.0 для экспорта данных из Neo4J в файл Excel.

Код записи:

$spreadsheet->getActiveSheet()
            ->setCellValue('A1',$string);

Это работает хорошо, пока у меня нет сущностей HTML.Для Neo4J Reasons я храню некоторый текст в HTML-сущностях, таких как

8" ID x 12"

, который читается для людей

8" ID x 12"

(кавычки являются частью строки и важны для читателя, так какизмерения (в дюймах) и не могут быть пропущены.

Я пытался использовать

html_entity_decode($string,ENT_QUOTES, "utf-8");

для получения чистого вывода в ячейке листа Excel. Вывод на экране в порядкепри печати в php-файле отображается как ожидалось

8" ID x 12"

В Excelfile я всегда получаю

8" ID x 12" 

независимо от того, как я форматирую строку или изменяю кодировку (пробовал также без каких-либо измененийУ кого-нибудь есть совет, как получить оригинальные символы вместо html-сущностей?

Дальнейшие исследования:

Когда я вместо ввода текстапеременной типа

$spreadsheet->getActiveSheet()->setCellValue( 'A1',
            html_entity_decode('8" ID x 2"',ENT_QUOTES,'UTF-8') ); 

это работает как charme, пробуя то же самое с переменной типа $ string, где

$string = '8" ID x 2"'

$spreadsheet->getActiveSheet()->setCellValue('A1', 
            html_entity_decode($string,ENT_QUOTES,'UTF-8')
            );

снова генерирует вывод

8" ID x 12" 

внутри ячейки Excel. По какой-то причине я не могу понятьt эта функция не работает со строками?

1 Ответ

0 голосов
/ 01 июля 2019

Я успешно использовал объекты HTML следующим образом:

$yAxisLabel = new Title(html_entity_decode('Temp (°C)',ENT_QUOTES,'UTF-8'));
...