导入.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,,,,,,,,,
答案 0 :(得分:2)
因此文件中根本没有引用字符串,严格来说这不是有效的CSV;但我猜测PHPExcel无法处理未定义的字符集...默认为UTF-8,但如果这不是UTF-8文件,那么你需要让PHPExcel知道正在使用什么字符集:< / p>
$objReader->setInputEncoding('ISO-8859-1');
(或文件正在使用的任何字符集),以便它可以知道如何将其转换为UTF-8
PS
$objReader->setReadDataOnly(true);
是多余的,因为CSV文件不能包含任何内容,只能包含数据