PHPExcel将单元格内的html标签渲染为纯文本

时间:2013-07-25 02:46:06

标签: php phpexcel

现在的PHPExcel现在可以格式化excel单元格中的HTML标签了吗? 这就像问题here

我有一个来自数据库的表,其中包含包含带有html标记的字符串的字段

即。 < b>你好< / b>

我希望它在excel中输出而不是纯文本,但是像这样你好

有没有可以执行此操作的excel库?任何的想法?提前谢谢

2 个答案:

答案 0 :(得分:3)

没有! PHPExcel没有任何内置逻辑来执行此操作;我也不知道其他任何图书馆。

您需要自己编写一些代码来处理从HTML到Rich Text Run的转换.... HTML Reader中的一些逻辑可以作为基础使用对此。

修改

由于编写了这个答案,因此在PHPExcel库中添加了一个辅助类,它将采用简单的html标记的基本块并将其转换为可以设置为单元格值的富文本对象。这是PHPExcel_Helper_HTML类,使用它的toRichTextObject()方法,它接受一个html块的参数并返回一个富文本对象。有一些例子证明了它在Examples/42richText.php

中的用法
$html = '<font color="#0000ff">
<h1 align="center">My very first example of rich text<br />generated from html markup</h1>
<p>
<font size="14" COLOR="rgb(0,255,128)">
<b>This block</b> contains an <i>italicized</i> word;
while this block uses an <u>underline</u>.
</font>
</p>
<p align="right"><font size="9" color="red">
I want to eat <ins><del>healthy food</del> <strong>pizza</strong></ins>.
</font>
';

$wizard = new PHPExcel_Helper_HTML;
$richText = $wizard->toRichTextObject($html);

虽然不支持所有标记,并且它不使用样式表,并且只使用一组有限的内联样式元素,但它对基本标记元素的效果非常好。

答案 1 :(得分:-1)

我花了很多时间在这件事上。但我没有得到目标。这是不可写的,并按照我们的意愿获取数据。我对Mark的回答表示满意,请尝试使用自己的脚本。