读取excel文件的phpexcel十进制数字读取不正确

时间:2014-02-21 12:58:02

标签: decimal phpexcel

我在.xlsx文件的单元格中得到了值'9,2'('9.2'的荷兰符号),该单元格具有'通用'数字格式。您也可以在上方栏中查看公式的值为'9,2'当我使用PHPExcel读取此单元格时,使用 - > getValue()我得到'9,199999999999999'。

这是我的代码:

$oPhpReader = PHPExcel_IOFactory::createReader($sFileType);
$aWorksheetNames = $oPhpReader->listWorksheetNames($sFileName);
$oPhpReader->setReadDataOnly(true);
$oPhpReader->setLoadSheetsOnly($aWorksheetNames[0]);
$oPhpExcel = $oPhpReader->load($sFileName);
$oWorksheet = $oPhpExcel->getActiveSheet();
$oCell = $oWorksheet->getCellByColumnAndRow($iCol,$iRow);
$sTempValue = $oCell->getValue();

1 个答案:

答案 0 :(得分:1)

这就是我现在解决问题的方法。虽然我认为这不是一个非常简洁的解决方案,但它可能是唯一的方法。

我只是觉得我永远不会得到超过12位的数字,只有当PHPExcel弄错了。所以我使用number_format将所有浮点数舍入到12位:

if ((is_numeric($sTempValue))&&(strpos($sTempValue,'.')))
{
    $sTempValue = rtrim(rtrim(number_format($sTempValue,12,',',''),'0'),',');
}