Reputation: 491
I need to display a value in an excel cell formatted like a percentage, e.g. like 12.3%
.
By default the value is displayed as Text, but I need to display it as a number.
What is the appropriate method to achieve this?
Upvotes: 46
Views: 50315
Reputation: 327
POI has built-in formats check this link first
and check this link for example
For percentage, it will be something like this
dataCell.setCellValue(.12)
CellStyle stylePercentage = workbook.createCellStyle();
stylePercentage.setDataFormat(workbook.createDataFormat()
.getFormat(BuiltinFormats.getBuiltinFormat( 10 )));
dataCell.setCellStyle(stylePercentage);
Upvotes: 5
Reputation: 100706
You need to:
Something like:
cell.setCellValue(0.123); // set value as number
CellStyle style = workbook.createCellStyle();
style.setDataFormat(workbook.createDataFormat().getFormat("0.000%"));
cell.setCellStyle(style);
Take a look at user defined formats section of POI quick guide for more details. You may also want to go through the examples which show how to use different POI capabilities.
Upvotes: 85