De fusion et aligner au centre de la cellule à l'aide d'apache poi
Je veux exporter les données vers excel à l'aide de Apache poi.
Maintenant, le problème que je suis confronté est que je suis incapable de fusionner les lignes et les aligner dans le centre.
Code pour exporter des données est:
List<LinkedHashMap<String,Object>> lstReportHeader = null;
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
//Set Header Font
HSSFFont headerFont = wb.createFont();
headerFont.setBoldweight(headerFont.BOLDWEIGHT_BOLD);
headerFont.setFontHeightInPoints((short) 12);
//Set Header Style
CellStyle headerStyle = wb.createCellStyle();
headerStyle.setFillBackgroundColor(IndexedColors.BLACK.getIndex());
headerStyle.setAlignment(headerStyle.ALIGN_CENTER);
headerStyle.setFont(headerFont);
headerStyle.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM);
int rowCount= 0;
Row header;
header = sheet.createRow(0);//its for header
Cell cell ;//= header.createCell(0);
for(int j = 0;j < 4; j++) {
cell = header.createCell(j);
if(j == 0) {
cell.setCellValue("ItemWise List");
}
cell.setCellStyle(headerStyle);
}
sheet.addMergedRegion(new CellRangeAddress(rowCount, rowCount, 0, lstReportFormHeader.size()-1));
header = sheet.createRow(0);
cell = header.createCell(0);
cell.setCellValue("Sr. No");
cell = header.createCell(1);
cell.setCellValue("Item Name");
cell = header.createCell(2);
cell.setCellValue("Qty");
cell = header.createCell(3);
cell.setCellValue("Rate");
Maintenant, je veux ItemWise Liste de fusion et d'en faire aligner au centre.
Vous devez vous connecter pour publier un commentaire.
Ma solution a été de fusionner les cellules par leurs positions, puis il a créé une cellule (référence pour le premier bloc de la fusion de cellules) pour affecter une valeur, puis définissez l'alignement à travers les CellUtil
CellUtil.setAlignment(cell, HorizontalAlignment.CENTER);
, la méthode setAlignment(Cellule de cellule de, Classeur classeur, court aligner) est obsolète maintenant à partir de 3.15-beta2.De fusion comme:::
Pour l'alignement également vérifier les ci-dessous lien officiel de Apache poi:::
http://poi.apache.org/spreadsheet/quick-guide.html#Alignment
Après étude, j'ai constaté que, après la fusion de 7 cellules, cellule fusionnée id sera de 0 j'ai donc appliqué suivant le style de cellule id 0 à l'aide de style suivant.
Selon ma compréhension, vous avez de début et de fin pour la fusion des cellules et que vous souhaitez fusionner les plages de cellules et d'aligner le contenu des cellules. Si je suis de droite, vous pouvez utiliser la méthode suivante:
Bien ce qui a fonctionné pour moi est de définir toutes les cellules fusionnées' Cellstyle pour centrer ALIGNER. Si vous mettez les XSSFSheet.addMergedRegion() la méthode avant ou après le réglage de la cellstyle valeurs de centre n'a pas d'importance.
Comme répondu plus haut, la fusion des cellules peut être réalisé en utilisant
Mais pour l'alignement des cellules verticalement,récemment, j'ai été logés à la même question et j'ai essayé la réponse ci-dessus, mais en utilisant
aligné Date de cellules mises en forme à l'Horizontale aligné à Gauche. J'ai donc utilisé la méthode suivante pour définir uniquement l'Alignement Vertical du contenu des Cellules.
J'espère que cela aide!!
Heureux De Codage
Cela a fonctionné pour moi et je pense que c'est plus propre:
Utilisation
pour régler les alignements verticaux au lieu de