我有一个来自mysql的excel导出,它应该显示一个包含17位数值(唯一的数字,引用)的列的数据。 使用PHPExcel时,除此参考之外的所有内容都显示正常。
我用过:
$objPHPExcel->getActiveSheet()->getStyle('F'.$xlsRow)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);
接近但是......
比较Excel工作表中的值和数据库中的原始数据时,我看到引用的最后2位数字设置为00.
例如:
`20130829071002200` instead of `20130829071002210`
我尝试在setFormatCode和(PHPExcel_Style_NumberFormat ::)中设置其他(数字和非数字)格式,但是当使用STRING格式时,我得到######,科学记数法(2,01308E + 16)使用无或TEXT格式或上面提到的输出(最后2位为零)
不知道我做错了什么......
任何帮助都将不胜感激。
答案 0 :(得分:8)
我建议这是因为您的数字太大而无法存储为32位整数值,因此它隐式设置为float(包含所有相应的精度问题)。如果你正在使用这么大的数值,那么你真的需要将它们视为字符串。将值存储在PHPExcel单元格中时,请使用带有字符串类型的setCellValueExplicit()。
$objPHPExcel->getActiveSheet()
->setCellValueExplicit(
'A1',
'20130829071002210',
PHPExcel_Cell_DataType::TYPE_STRING
);