Toujours montrer les deux points décimaux dans des cellules excel à l'aide d'Apache poi
Par exemple,
XSSFCellStyle style=(XSSFCellStyle) workbook.createCellStyle();
style.setDataFormat(workbook.createDataFormat().getFormat("#.##"));
productCell.setCellValue(12.4);
productCell.setCellType(Cell.CELL_TYPE_NUMERIC);
productCell.setCellStyle(style);
Cette affiche 12.4
dans la cellule spécifiée. Il devrait être 12.40
. La valeur 12
est affiché comme 12.
qui est tout à fait inutile.
Si la valeur est 0
ensuite, il affiche un point .
. Il devrait toujours afficher deux chiffres après la virgule - 0.00
, dans ce cas, quelle que soit la valeur stockée dans une cellule.
Comment faire pour forcer excel à toujours afficher deux chiffres après la virgule dans un numérique de la cellule?
- Je utiliser l'un des styles suivants à affichage numérique des cellules.
XSSFColor commonColor = new XSSFColor(new java.awt.Color(240, 240, 240));
XSSFColor cellBorderColour = new XSSFColor(new java.awt.Color(0, 76, 153));
Font font = workbook.createFont();
font.setBoldweight(Font.BOLDWEIGHT_BOLD);
font.setColor(IndexedColors.DARK_BLUE.index);
XSSFCellStyle style = (XSSFCellStyle) workbook.createCellStyle();
style.setFillForegroundColor(commonColor);
style.setFillPattern(CellStyle.SOLID_FOREGROUND);
style.setAlignment(CellStyle.ALIGN_RIGHT);
style.setFont(font);
style.setBorderLeft(BorderStyle.HAIR);
style.setBorderColor(XSSFCellBorder.BorderSide.LEFT, cellBorderColour);
style.setBorderTop(BorderStyle.HAIR);
style.setBorderColor(XSSFCellBorder.BorderSide.TOP, cellBorderColour);
style.setBorderRight(BorderStyle.HAIR);
style.setBorderColor(XSSFCellBorder.BorderSide.RIGHT, cellBorderColour);
style.setBorderBottom(BorderStyle.DOUBLE);
style.setBottomBorderColor(cellBorderColour);
J'ai appliqué des formules excel pour effectuer des calculs numériques des cellules qui sont censés être effectuée après l'application d'un format de nombre (arrondi au demi) sur les numériques cellules.
Oui ça se comporte exactement le même que celui mentionné dans la question.
Ce style de cellule avez-vous besoin d'en faire l'usage si vous êtes le formatage de la cellule dans Excel, pour l'obtenir à regarder la façon dont vous le souhaitez?
Édité à la question. @Gagravarr
OriginalL'auteur Tiny | 2014-09-24
Vous devez vous connecter pour publier un commentaire.
Dans Excel mise en forme, un
#
signifie "le lieu un chiffre ici seulement si nécessaire", mais un0
signifie "lieu de toujours un chiffre ici, même si c'est inutile, 0". Vous pouvez spécifier le format des données dans Apache POI exactement comme vous le feriez dans Excel lui-même. Si vous voulez le0
chiffres à montrer, alors vous devez utiliser0
s que la mise en forme de chiffres. EssayezCela rendra la valeur
0
apparaître comme0.00
et12.4
comme12.40
.OriginalL'auteur rgettman