我正在使用PHPSPreadsheet 1.6.0将数据从Neo4J导出到Excel文件。
写代码是
$spreadsheet->getActiveSheet()
->setCellValue('A1',$string);
只要我没有HTML实体,这就可以很好地工作。由于Neo4J的原因,我在
之类的HTML实体中存储了一些文本8" ID x 12"
为人类阅读
8" ID x 12"
(引号是字符串的一部分,对读者来说很重要,因为它是度量单位(英寸),不能跳过。
我尝试使用
html_entity_decode($string,ENT_QUOTES, "utf-8");
在excel工作表的单元格中产生干净的输出。当在显示预期的php文件中打印时,屏幕上的输出正常。
8" ID x 12"
我总是在Excelfile中得到
8" ID x 12"
无论我如何格式化字符串或更改编码(都尝试不做任何更改)。任何人都有提示如何获取原始字符而不是html实体?
进一步调查:
当我输入文本而不是像
这样的变量时$spreadsheet->getActiveSheet()->setCellValue( 'A1',
html_entity_decode('8" ID x 2"',ENT_QUOTES,'UTF-8') );
这就像一个魔术,可以像$ string这样的变量来尝试
$string = '8" ID x 2"'
$spreadsheet->getActiveSheet()->setCellValue('A1',
html_entity_decode($string,ENT_QUOTES,'UTF-8')
);
再次生成输出
8" ID x 12"
在Excel单元格内。由于某种原因,我无法弄清楚此功能不适用于字符串吗?
答案 0 :(得分:0)
我以这种方式成功使用了HTML实体:
$yAxisLabel = new Title(html_entity_decode('Temp (°C)',ENT_QUOTES,'UTF-8'));
答案 1 :(得分:0)
使用
常量字符串
html_entity_decode('8" ID x 2"',ENT_QUOTES,'UTF-8'))
或
变量
$string = '8" ID x 2"'
html_entity_decode($string,ENT_QUOTES,'UTF-8')
它们都不起作用。
/>最后,我只用
$sheet->setCellValue('A1', 'replace_this_string');
设置了单元格的值,然后用
$html = $this->load->view('folder/view', $data, TRUE);
加载了html,然后用dompdf渲染pdf,我将字符串替换为
$new_html = str_replace('replace_this_string','"', $html);