PHPExcel 货币获取单元格值 returns 作为布尔值 false

PHPExcel currency get cell value returns as boolean false

当导入一个 .csv 文件时,一个包含货币值的单元格,例如使用 getCellValue 时,£102.30 作为 bool(false) 返回。

$objReader = \PHPExcel_IOFactory::createReader('CSV');
$objReader->setReadDataOnly(true);
$loadedSpreadsheet = $objReader->load($spreadsheet);
$activeSheet = $loadedSpreadsheet->getActiveSheet();

var_dump($activeSheet->getCell('Q13')->getValue()); // bool(false)

这绝对是正确的单元格,因为两边的列都可以正常工作。

我试过将编码设置为 utf-8,但也没用

第 13 行:

000001,Mags,Red,0,65,720mm x 1080mm,0,0,0,0,0,0,0,0,,1,£3.22,Mag,,,,,,,,,

因此文件中根本没有引用字符串,严格来说这不是有效的 CSV;但我猜 PHPExcel 无法处理未定义的字符集...默认为 UTF-8,但如果这不是 UTF-8 文件,则需要让 PHPExcel 知道正在使用什么字符集:

$objReader->setInputEncoding('ISO-8859-1');

(或文件使用的任何字符集)以便它知道如何将其转换为 UTF-8

PS

$objReader->setReadDataOnly(true);

是多余的,因为 CSV 文件只能包含数据