I want to read data in Excel with Java, and data of cell in Excel got 2 types is NUMERIC and STRING. So when I want to read the data as a NUMERIC, it only displays numbers 101125340004, not like this 1.01E+11 because it is a telephone attribute. My code is working, but for some values (1%) still display floating-point number but they are actually integers, and I don't know why.
DataFormatter fmt = new DataFormatter();
if (cellType.toString().equals("NUMERIC"))
companyTel = fmt.formatCellValue(currentRow.getCell(8));
else
companyTel = currentRow.getCell(8).toString();
Output still got floating-point number in database

Version of Java Apache POI I'm using is 3.17.
Please tell me what wrong in my code above or how do I solve the problem? Thank you all.

Microsoft Excelconverts values having more than 11 digits in scientific notation when cell number formatGeneralis used. So842223622111leads to8,42224E+11inExcelcells having number formatGeneral. If inExcelthe cell shall show842223622111, then a special number format (0) is needed instead ofGeneral.You can read about available number formats in Excel for Office 365 and the special behavior of the
Generalformat for large numbers (12 or more digits).Libreoffice/OpenOffice Calcwill not do so. There842223622111stays842223622111in cells having number formatGeneral.Now, if
apache poigets a cell containing842223622111and having number formatGeneral, thenDataFormatterwill format this likeExcelwould also do.If you wants
DataFormattershould format this more likeLibreoffice/OpenOffice Calc, then you could do:Using this approach, no changes in the
Excelsheet are necessary. But of course the default behavior ofapache poi'sDataFormatteris changed. To avoid this, you could format the affected cells inExcelusing number format0, which isNumberwithout thousands separator and number of decimal decimal places = 0.But since you mentioned that this column contains telephone numbers, the most common solution would be formatting the whole column using number format
Text(@) . This "treats the content of a cell as text and displays the content exactly as you type it, even when you type numbers." So after that formatting was applied nothing will change to scientific notation any more.