我使用PHPExcel将数据从数据库导出到excel文件。但是我的数据包含一些特殊字符,这些字符由编辑器插件(Summernote)自动生成。例如:
<p class="Default"><span style="font-weight: bold;"><span style="mso-bidi-font-size:10.0pt;color:windowtext">+ Tra cứu thông tin; </span></span></p>
(主要内容仅为: +Tracứuthôngthtin )
任何人都可以帮我删除这些字符,但在导出到excel文件时保留原始格式吗?
答案 0 :(得分:1)
您需要使用一些基本的PHP函数将html实体转换为其字符,然后剥离html标记:
string(24) "+ Tra cứu thông tin; "
将为您提供原始文本内容
$string = '<p class="Default"><span style="font-weight: bold;"><span style="mso-bidi-font-size:10.0pt;color:windowtext">+ Tra cứu thông tin; </span></span></p>';
$string = html_entity_decode($string);
$wizard = new PHPExcel_Helper_HTML;
$richText = $wizard->toRichTextObject($string);
PHPExcel还提供了一个Helper函数,它将转换一些html标记,以便通过将格式转换为Rich Text对象来保留格式
<span>
但是,如果你想保留所有这些原始格式,你需要自己解决这个问题,因为PHPExcel的助手不会在<div>
或<strong>
中读取CSS或读取内联样式标签,只是<i>
或<font>
或{{1}}等基本标记样式标记。
答案 1 :(得分:0)
Mark, genius. I made a helper on laravel for this
function str_fix($string){
$end = '...';
if (mb_strwidth($string, 'UTF-8') <= 150) {
$new_str = strip_tags(html_entity_decode($string));
return $new_str;
}
$new_str = strip_tags(html_entity_decode($string));
$string = rtrim(mb_strimwidth($new_str, 0, 150, '', 'UTF-8') ).$end;
return $string;
}