質問: phpspreadsheetを使って、Excelのデータを取得しています。 ほとんどのセルは問題なく値を取得できていますが、 Excelのセルの値と全然違う値を取得する箇所があります。 例 Excelの値:290000000 phpspreadsheetで取得した値:-309390000 取得はgetCalculatedValue()を利用しています。 getCalculatedValue()だと正しい結果が取得できませんが、 getOldCalculatedValue()だと正しい結果が取得できます。 getOldCalculatedValue()を使うべきなのでしょうか。 getOldCalculatedValue()は非推奨というような記載を見かけたので、できれば使いたくないです。 原因や解決方法など、ご存知の方教えてください。 よろしくお願いします。
回答: まず、getCaluculatedvValue()メソッドはPhpspreadsheetでは非推奨となっています。よって、代替の手段が必要です。ところが、Phpspreadsheetはけっこうバグだらけなので、信頼できない動作をするものは使わないほうがいいです。 これは自分が実務で利用しているものですが、この書き方なら14桁までの数値(ゼロ先頭でも問題ありません)まで処理できます(文字列だと困る場合は後ろのメソッドを消してください) ``` getNumberFormat() -> setFormatCode('0'); ```