What versions of Spreadsheet::Read and Spreadsheet::XLSX do you have on each environment? From the surface, I can see at least two potential causes:
- one of the platforms uses a different representation for floating point, and
- there is a difference in reading/writing based on different versions of those two modules.
I have not looked at any history to see if there is an obvious change in the changelogs, but the second option would be my first place to look. Specifically, I would look for a change where the data is read from the spreadsheet as a string vs a floating point number.