I have a spreadsheet created and edited with a mix or Excel 2007 and
OpenOffice 3.2.1 build 9502
When I read numbers with org.apache.poi.ss.usermodel.DataFormatter (from
poi-src-3.7-20101029.zip) which are shown as formatted with Format code
General I get them returned in decimal format, even when they are shown
as Integers. i.e. the old 12 being passed back as 12.0. I tracked the
problem down to what is returned as the
cell.getCellStyle().getDataFormatString() in the private Format
getFormat(Cell cell) of the DataFormatter class. This returns "GENERAL"
not "General" for some reason (OpenOffice seems to have changed it) so
the part of the code in private Format getFormat(double cellValue, int
formatIndex, String formatStr) which handles the General style nicely;
if ("General".equals(formatStr) || "@".equals(formatStr)) {
if (DataFormatter.isWholeNumber(cellValue)) {
return generalWholeNumFormat;
}
return generalDecimalNumFormat;
}
is never called.
I posted this in the hope it might help others.
If anyone knows about this problem and is planning a POI fix for it I
would also be interested but I can work round for now.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]