0

このようにセルの値を設定すると

->setCellValue('O' . $currentRow, 12000000000000111702)

また

->setCellValue('O' . $currentRow, "12000000000000111702")

値1.2E+19、つまり12000000000000000000を生成しています。理由を教えてもらえますか?

4

1 に答える 1

2

この値をfloatに変換するのではなく、正確に「そのまま」保持する必要がある場合(PHP intには大きすぎるため)、を使用して値を文字列として明示的に設定する必要があります。

->setCellValueExplicit('O' . $currentRow, "12000000000000111702", PHPExcel_Cell_DataType::TYPE_STRING)

とにかくsetCellValueExplicit()がデフォルトで設定されるため、実際にはPHPExcel_Cell_DataType::TYPE_STRINGを指定する必要はありません。

于 2013-01-15T13:03:33.293 に答える