Я использую PHPExcel для передачи данных между таблицами MySQL DB и Excel 2007.Это хорошо работает в большинстве ситуаций, но я столкнулся с одной проблемой.
Некоторые поля в БД содержат данные HTML.Мне нужно максимально сохранить форматирование в ячейках Excel.Как я мог понять, Excel допускает следующее форматирование внутри ячеек (класс PHPExcel_RichText
поддерживает все это): новые строки [они могут использоваться для отслеживания <p></p>
блоков], имя шрифта, размер, цвет, полужирный шрифт, курсив,подчеркивание, зачеркивание, нижний индекс, верхний индекс.Предположим, этого достаточно, поэтому мы можем игнорировать другое форматирование HTML.
Каков наилучший (самый простой и быстрый) способ преобразования данных HTML в Excel Rich Text и наоборот?
Единственное решение, которое я имею в виду, - это создать функцию, которая будет проходить через HTML [используя DOMDocument
или около того], ставить \n
после элементов блока, создавать PHPExcel_RichText_Run
объекты для <b>
,<i>
и т. Д. И игнорируйте все остальные элементы.Я чувствую, что это будет довольно «дорого», особенно когда речь идет о вложенных структурах, таких как <b>some <i>formatted<i> text</b>
Есть ли лучший способ сделать это, с PHPExcel
или без него?
Еще одна идея: я заметил, что при экспорте в формате XML Spreadsheet 2003 внутри XML появляется следующее:
<ss:Data ss:Type="String"
xmlns="http://www.w3.org/TR/REC-html40"><Font html:Color="#000000">this is </Font><B><Font
html:Color="#000000">some </Font><I><Font html:Color="#000000">formatted</Font></I><Font
html:Color="#000000"> text</Font></B></ss:Data>
, что является обычным HTML4.Я имею в виду, что Excel может понимать простой HTML.Так что, возможно, есть какой-то способ передать HTML напрямую в Excel, не преобразовывая его в PHPExcel_RichText
объекты ... (хотя обратите внимание, что было бы лучше, если бы я смог экспортировать в формат .xlsx)