我正在使用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>
等标记替换为粗体的最佳方法,这将非常受欢迎。
答案 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对象