我正在为我的一个项目使用 PHP_XLSXWriter 并遇到一个我似乎无法解决的问题;混合格式。
我需要从我的数据库表中生成一个 Excel 文件,以及一个全是文本的标题行。标题行后面的数据格式为“整数”、“数字”、“文本”。我已经有一个完美运行的脚本,可以从数据库中提取信息,然后将其写入 XLSX 文件,然后再将文件发送到用户的浏览器。该文件的顶部是以下内容:
$header = array("string","string","string");
$writer->writeSheetHeader($sheet_name, $header, $col_options = ['widths'=>[20,20,50], 'suppress_row'=>true] );
这一切都完美无缺,我的文件在 Excel 中打开。但是,我所有的数据都是 Excel 的“文本”格式;标题行和数据行。这显然是因为我声明将三列格式化为“字符串”,但如果我将该行更改为:
$header = array("integer","#0.00","string");
$writer->writeSheetHeader($sheet_name, $header, $col_options = ['widths'=>[20,20,50], 'suppress_row'=>true] );
然后,最终的 Excel 在打开文件时提醒用户注意文件中的问题,并提供修复文件。这行得通,标题都是文本,数据都是正确的格式,但从用户的角度来看,它是混乱和不专业的。
很明显,这个问题的出现是因为标题行不包含整数或数字,我试图强制格式化整个列,但是如何解决这个问题?我花了很长时间搜索帮助文件和在线论坛,但找不到任何清楚地告诉我如何在 PHP_XLSXWriter 中混合格式的内容。
有没有其他人设法解决这个问题,如果是这样,如何解决?