PHPExcel货币获取单元格值返回为布尔值false
问题描述:
当导入.csv文件时,使用货币值的单元格(例如,使用getCellValue时,£102.30返回为bool(false)。PHPExcel货币获取单元格值返回为布尔值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文件不能包含任何东西,但只有数据
你可以o在文本编辑器中输入文件,并将该文件的第13行粘贴到您的问题中? –
@Mark Baker更新 – iswinky
因此,根本没有在文件中引用字符串,严格来说这不是有效的CSV;但我猜PHPExcel不能处理未定义的字符集 –