PHPExcel - 如何使用preg_replace替换文本


PHPExcel - How to replace text using preg_replace

我正在使用PHPExcel将数据从我的数据库提取到有组织的Excel工作表中。除了一件事,一切都很好。我的数据库条目有时可能包含 HTML 标记,如 <strong></strong><BR><p></p> 等......所以我设法让这个 PHP 行工作,这对于将我的<BR>标记替换为空格非常有用。

$data = str_replace("<br />", "'n", $data);         
$data = str_replace("<br/>", "'n", $data);          
$data = str_replace("<br>", "'n", $data);

但是,当我尝试执行以下操作时,它什么也没做。我期待它会使文本加粗。

$data = str_replace("<strong>", '&B', $data);

我在这些论坛上读到,最好使用preg_replace并为我需要替换的所有 HTML 标记设置一个数组。对于我的生活,我不明白如何使用preg_replace。有人请给我一些建议,在导出时替换<strong></strong>加粗等标记的最佳方法是什么,这将不胜感激。

'&B'只会为打印的页眉和页脚设置粗体文本,如文档标题为Setting the print header and footer of a worksheet

文档

标题为 Formatting cells 的部分描述了单元格内容的格式,如下所示:

$objPHPExcel->getActiveSheet()->getCell('A1')->setValue('bold');
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);

或者(如果您的内容包含实际标记(使用富文本对象(如果您只想将部分文本设置为粗体(。

$objRichText = new PHPExcel_RichText();
$objRichText->createText('This text is ');
$objBoldTextRun = $objRichText->createTextRun('bold');
$objBoldTextRun->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getCell('B1')->setValue($objRichText);

但您需要解析标记以将其转换为富文本对象