You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHP simplexlsxgen导出Excel时HTML特殊字符显示异常问题

解决SimpleXLSXGen导出Excel时<>无法正常显示的问题

问题原因

直接写入<<NEW>>时,XML会将<视为非法字符,导致生成的Excel XML结构出错,对应单元格内容被丢弃;使用htmlspecialchars处理后,内容被转义为&lt;&lt;NEW&gt;&gt;,但Excel未自动解析为原始符号,所以显示转义后的字符串。

解决方案

方案1:指定单元格类型为字符串

SimpleXLSXGen支持通过关联数组定义单元格的value和type,指定type为str可强制将内容按纯文本处理,自动完成合法的XML转义,同时Excel会正确显示原始符号:

$excelArr = [
    ['DOC', 'DOCDATE'],
    [['value' => '<<NEW>>', 'type' => 'str'], '05/01/2023']
];

$xlsx = $this->simplexlsxgen->fromArray($excelArr);
$xlsx->saveAs('output.xlsx');

方案2:手动转义+强制文本类型

如果方案1不生效,可手动转义特殊字符后,同样指定单元格类型为字符串:

$newValue = str_replace(['<', '>'], ['&lt;', '&gt;'], '<<NEW>>');
$excelArr = [
    ['DOC', 'DOCDATE'],
    [['value' => $newValue, 'type' => 'str'], '05/01/2023']
];

$xlsx = $this->simplexlsxgen->fromArray($excelArr);
$xlsx->saveAs('output.xlsx');

方案3:利用Excel文本输入技巧

在字符串前添加单引号,Excel会自动忽略开头的单引号,将后续内容视为纯文本显示:

$excelArr = [
    ['DOC', 'DOCDATE'],
    ['\'<<NEW>>', '05/01/2023']
];

$xlsx = $this->simplexlsxgen->fromArray($excelArr);
$xlsx->saveAs('output.xlsx');

内容的提问来源于stack exchange,提问作者Eaten Taik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 21:05:11