Reputation: 1163
i am setting the style for header and one of my last column also got the style i set for the header. This is my code for setting setting style.
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet(sheetName);
for (int i = 0; i < numberOfMergedRow; i++) {
sheet.addMergedRegion(new CellRangeAddress(i, i, 0, numberOfColumns - 1));
sheet.autoSizeColumn(i);
}
XSSFRow row = sheet.createRow(0);
int l = row.getLastCellNum() + 1;
XSSFCell cell = row.createCell((short) l);
XSSFCellStyle cellStyle = workbook.createCellStyle();
Font headerFont = workbook.createFont();
Set<Integer> keyset = data.keySet();
int rownum = 0;
for (Integer key : keyset) {
row = sheet.createRow(rownum++);
Object[] objArr = data.get(key);
int cellnum = 0;
for (Object obj : objArr) {
cell = row.createCell(cellnum++);
if (obj instanceof String)
cell.setCellValue((String) obj);
else if (obj instanceof Integer)
cell.setCellValue((Integer) obj);
else if (obj instanceof Double)
cell.setCellValue((Double) obj);
else if (obj instanceof Number)
cell.setCellValue((Double) obj);
}
cellStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER);
cellStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
/* adding heading style */
cellStyle.setFillForegroundColor(IndexedColors.LIGHT_CORNFLOWER_BLUE.getIndex());
cellStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
headerFont.setBoldweight(Font.BOLDWEIGHT_BOLD);
headerFont.setFontHeightInPoints((short) 12);
cellStyle.setFont(headerFont);
cell.setCellStyle(cellStyle);
how can i set the style only in header?
Upvotes: 1
Views: 5240
Reputation: 897
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet(sheetName);
for (int i = 0; i < numberOfMergedRow; i++) {
sheet.addMergedRegion(new CellRangeAddress(i, i, 0, numberOfColumns - 1));
sheet.autoSizeColumn(i);
}
XSSFRow row = sheet.createRow(0);
int l = row.getLastCellNum() + 1;
XSSFCell cell = row.createCell((short) l);
XSSFCellStyle cellStyle = workbook.createCellStyle();
Font headerFont = workbook.createFont();
cellStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER);
cellStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
/* adding heading style */
cellStyle.setFillForegroundColor(IndexedColors.LIGHT_CORNFLOWER_BLUE.getIndex());
cellStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
headerFont.setBoldweight(Font.BOLDWEIGHT_BOLD);
headerFont.setFontHeightInPoints((short) 12);
cellStyle.setFont(headerFont);
cell.setCellStyle(cellStyle);
Set<Integer> keyset = data.keySet();
int rownum = 0;
for (Integer key : keyset) {
row = sheet.createRow(rownum++);
Object[] objArr = data.get(key);
int cellnum = 0;
for (Object obj : objArr) {
cell = row.createCell(cellnum++);
if (obj instanceof String)
cell.setCellValue((String) obj);
else if (obj instanceof Integer)
cell.setCellValue((Integer) obj);
else if (obj instanceof Double)
cell.setCellValue((Double) obj);
else if (obj instanceof Number)
cell.setCellValue((Double) obj);
}
move the cellStyle code outside the for loop
Upvotes: 2