PHPExcel - 如何使用preg_replace替换文本

时间:2014-12-17 21:36:07

标签: php html phpexcel

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

<BR>

然而,当我尝试执行以下操作时,它什么都不做。我期待它会加粗文本。

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

我在这些论坛上看到,最好使用preg_replace并为我需要替换的所有HTML标记设置一个数组。对于我的生活,我无法理解如何使用preg_replace。有人请告诉我一些什么是在导出时将$data = str_replace("<strong>", '&B', $data); <strong>等标记替换为粗体的最佳方法,这将非常受欢迎。

1 个答案:

答案 0 :(得分:1)

'&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);

或(如果您的内容包含实际标记),如果您只想将文本的一部分设置为粗体,则使用Rich Text对象。

$objRichText = new PHPExcel_RichText();
$objRichText->createText('This text is ');

$objBoldTextRun = $objRichText->createTextRun('bold');
$objBoldTextRun->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getCell('B1')->setValue($objRichText);

但您需要解析标记以将其转换为Rich Text对象