PHPExcel数字格式显示不正确


PHPExcel number format not displaying correctly

我有一个从mysql导出的excel,它应该显示一个值为17位的列中的数据(一个唯一的数字引用)。使用PHPExcel时,除此引用外,其他所有内容都显示良好。

我曾经:$objPHPExcel->getActiveSheet()->getStyle('F'.$xlsRow)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);这很接近,但是。。。

当比较Excel工作表中的值和数据库中的原始数据时,我看到引用的最后两位数字被设置为00。

例如:

`20130829071002200` instead of `20130829071002210`

我尝试在setFormatCode和(PHPExcel_Style_NumberFormat::)中设置其他(数字和非数字)格式,但我要么在使用STRING格式时获得#######,要么在不使用任何内容或TEXT格式时获得科学记数法(201308E+16),要么在上面提到的输出(最后两位为零)

不知道我做错了什么。。。

如有任何帮助,我们将不胜感激。

我建议这是因为你的数字太大,无法存储为32位整数值,所以它被隐式设置为浮点(有所有相应的精度问题)。如果您使用这么大的数值,那么您真的需要将它们视为字符串。将值存储在PHPExcel单元格中时,请将setCellValueExplicit()与字符串类型一起使用。

$objPHPExcel->getActiveSheet()
    ->setCellValueExplicit(
        'A1', 
        '20130829071002210', 
        PHPExcel_Cell_DataType::TYPE_STRING
    );