Laravel 5 PHPSReadSheet舍入帐号并从起始位置删除0

Laravel 5 PHPSReadSheet舍入帐号并从起始位置删除0,laravel-5,phpspreadsheet,Laravel 5,Phpspreadsheet,我正在编写phpspreadsheet,从中下载用户帐户详细信息,但phpspreadsheet正在对帐户号进行舍入,并从起始位置删除0 例如: 原始=>5457789856453699 PHPSReadSheet代码=>5457789856453700之后 原始=>0256884555 PHPSReadSheet代码=>256884555之后 我希望数字是准确的,就像我使用laravel从DB中提取一样 已尝试将数据类型转换为0,但使其单元格值为0。尝试了数字格式,但它也不起作用 $sprea

我正在编写phpspreadsheet,从中下载用户帐户详细信息,但phpspreadsheet正在对帐户号进行舍入,并从起始位置删除0

例如:

原始=>5457789856453699 PHPSReadSheet代码=>5457789856453700之后

原始=>0256884555 PHPSReadSheet代码=>256884555之后

我希望数字是准确的,就像我使用laravel从DB中提取一样

已尝试将数据类型转换为0,但使其单元格值为0。尝试了数字格式,但它也不起作用

$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
        $sheet = $spreadsheet->getSheet(0);
        $sheet->fromArray($Final, null, 'A1');
        $sheet->getStyle('A1:A1')
            ->getNumberFormat()
            ->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_TEXT);
        $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);

这个问题是否有其他解决方案,或者我在这里做错了什么。

这是一个很老的问题,但我也遇到了这个问题,PHPSReadSheet正在将像
1606778294323857
这样的大数字改成
1606778294323860
。如果您只需要将这些值保持原样,而不需要将其“格式化”(键入)为数字,这对我很有帮助

解决方案是将类型显式设置为字符串:

$sheet->getCell('A1')->setValue(1606778294323857)->setDataType(DataType::TYPE_STRING);

我的PHPSpreadSheet版本:1.16

在对值执行任何操作之前,先在PHP中将值转换为字符串。它们被视为数字,从技术上讲,它们是数字,因此会进行舍入并删除前导零,因为当它们是数字时,它们对值没有意义。对此的解决方案是什么?