我在.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();
答案 0 :(得分:1)
这就是我现在解决问题的方法。虽然我认为这不是一个非常简洁的解决方案,但它可能是唯一的方法。
我只是觉得我永远不会得到超过12位的数字,只有当PHPExcel弄错了。所以我使用number_format将所有浮点数舍入到12位:
if ((is_numeric($sTempValue))&&(strpos($sTempValue,'.')))
{
$sTempValue = rtrim(rtrim(number_format($sTempValue,12,',',''),'0'),',');
}