nagireddy
nagireddy

Reputation: 491

Display percentage values in Excel using POI API

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

Answers (2)

Ali
Ali

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

ChssPly76
ChssPly76

Reputation: 100706

You need to:

  1. Set your data as number (floating-point), not as text.
  2. Specify cell format as percentage.

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

Related Questions