使用POI API在Excel中显示百分比值

46

我需要在Excel单元格中以百分比格式显示值,例如像 12.3% 这样。

默认情况下,该值会被显示为文本,但我需要将其显示为数字。

应该采用什么方法来实现这一目标?


1
@ax,这是一个有关POI的问题,即如何将单元格类型设置为百分比的问题。 - Yishai
2个回答

84

您需要:

  1. 将您的数据设置为数字(浮点数),而不是文本。
  2. 指定单元格格式为百分比。

类似这样:

cell.setCellValue(0.123); // set value as number
CellStyle style = workbook.createCellStyle();
style.setDataFormat(workbook.createDataFormat().getFormat("0.000%"));
cell.setCellStyle(style);

请查看POI快速指南中的用户自定义格式部分,以获取更多详细信息。您还可以浏览示例,了解如何使用不同的POI功能。


2
Excel 中的最终结果未显示百分号,而只是显示 0.123 作为一个数值。 - KayKay
@KayKay,你找到解决方案了吗? - Vladimir Apolaiko
@VladimirApolaiko 没有。 - KayKay
对我来说,它完美地工作了,单元格的类型是百分比,末尾还带有“%”符号。 - Fizik26
我使用sheet.setDefaultColumnStyle在列级别上设置了样式,这对我起到了作用。 - undefined

5

POI内置了格式检查,首先查看链接

并查看示例

对于百分比,可以像这样:

dataCell.setCellValue(.12)
CellStyle stylePercentage = workbook.createCellStyle();
stylePercentage.setDataFormat(workbook.createDataFormat()
.getFormat(BuiltinFormats.getBuiltinFormat( 10 )));
 dataCell.setCellStyle(stylePercentage);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接