I have googled some code and found some answers but not able to get my excel file output in Bold and set background color. I have tried with following code. can you please tell me where am I going wrong? Please take a look. Thanks.
FYI: I am going to make 1st Row in BOLD with blue or any Light color background. If you know please help with the code.
// Excel file generation code
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Readings");
CellStyle style = workbook.createCellStyle();
Font font = workbook.createFont();
font.setFontHeightInPoints((short)11);
font.setFontName(HSSFFont.FONT_ARIAL);
font.setBoldweight(HSSFFont.COLOR_NORMAL);
font.setBold(true);
font.setColor(HSSFColor.DARK_BLUE.index);
style.setFont(font);
// Freeze 1st Row
sheet.createFreezePane(0, 1);
HSSFRow row = sheet.createRow(1);
HSSFRow rowhead = sheet.createRow((short) 0);
rowhead.setRowStyle(style);
rowhead.createCell(0).setCellValue("RUN");
rowhead.createCell(1).setCellValue("NUMBER");
You are doing wrong in the following:
1- You are not setting any Background color;
2- When you create the new cells they override the row style, so you need to set the style for each new cell you create;
Below is the working code:
FileOutputStream fileOut = new FileOutputStream("poi-test.xls");
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Readings");
CellStyle style = workbook.createCellStyle();
Font font = workbook.createFont();
font.setFontHeightInPoints((short)11);
font.setFontName(HSSFFont.FONT_ARIAL);
font.setBoldweight(HSSFFont.COLOR_NORMAL);
font.setBold(true);
font.setColor(HSSFColor.DARK_BLUE.index);
style.setFont(font);
//Add these lines
style.setFillForegroundColor(IndexedColors.AQUA.getIndex());
style.setFillPattern(CellStyle.SOLID_FOREGROUND);
sheet.createFreezePane(0, 1); // Freeze 1st Row sheet.createFreezePane(int colSplit, int rowSplit, int leftmostColumn, int topRow)
HSSFRow rowhead = sheet.createRow((short) 0);
rowhead.setRowStyle(style);
//Set the cell0 Style
HSSFCell cell0 = rowhead.createCell(0);
cell0.setCellStyle(style);
cell0.setCellValue("ROW");
//Set the cell1 Style
HSSFCell cell1 = rowhead.createCell(1);
cell1.setCellStyle(style);
cell1.setCellValue("NUMBER");
workbook.write(fileOut);
file output:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With