I have found the wrong work of readLongLE() method in DataInputBlock.class. If we have, for example numbers like in our excel sheet: 90003097950700100 90003147950700100 90005037950200100 90005037950200200 90005037950200300 In POI in will be: 90003097950700096 90003147950700096 90005037950200096 90005037950200192 90005037950200304 after transformation.
Are you sure this isn't just a lack of precision in the number due to insufficient bits available to store the exact value? (Most commonly also seen by people storing credit card numbers in an excel cell formatted as a number)
Created attachment 34794 [details] test excel file There aare some numbers in that text file. Some of them have string cell format and some of them - format like digits. Some of the numbers formatted like digits have wrong representation in poi.
Hello, Nick. Maybe you are right. It's really big numbers that supposed to be strings. But some of them nevertheless correct treated by POI. I have attached the file with example.
Ping David North, our expert on this sort of thing...
Ok, thank you, Nick!