How to apply bold text style for an entire row using Apache POI?

JavaApache Poi

Java Problem Overview


How to make an entire excel row cells bold text using Apache POI?

E.g:
Column headings should be in bold. Instead of applying style for each and every cell of heading row, how can I apply some style to an entire row?

Java Solutions


Solution 1 - Java

This should work fine.

    Workbook wb = new XSSFWorkbook("myWorkbook.xlsx");
    Row row=sheet.getRow(0);
	CellStyle style=null;
	
	XSSFFont defaultFont= wb.createFont();
	defaultFont.setFontHeightInPoints((short)10);
	defaultFont.setFontName("Arial");
	defaultFont.setColor(IndexedColors.BLACK.getIndex());
	defaultFont.setBold(false);
	defaultFont.setItalic(false);
	
	XSSFFont font= wb.createFont();
	font.setFontHeightInPoints((short)10);
	font.setFontName("Arial");
	font.setColor(IndexedColors.WHITE.getIndex());
	font.setBold(true);
	font.setItalic(false);
	
	style=row.getRowStyle();
	style.setFillBackgroundColor(IndexedColors.DARK_BLUE.getIndex());
    style.setFillPattern(CellStyle.SOLID_FOREGROUND);
	style.setAlignment(CellStyle.ALIGN_CENTER);
	style.setFont(font);
	

If you do not create defaultFont all your workbook will be using the other one as default.

Solution 2 - Java

Please find below the easy way :

XSSFCellStyle style = workbook.createCellStyle();
style.setBorderTop((short) 6); // double lines border
style.setBorderBottom((short) 1); // single line border
XSSFFont font = workbook.createFont();
font.setFontHeightInPoints((short) 15);
font.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD);
style.setFont(font);                 

Row row = sheet.createRow(0);   
Cell cell0 = row.createCell(0);
cell0.setCellValue("Nav Value");
cell0.setCellStyle(style);  
for(int j = 0; j<=3; j++)
row.getCell(j).setCellStyle(style);

Solution 3 - Java

This work for me

I set style's font before and make rowheader normally then i set in loop for the style with font bolded on each cell of rowhead. Et voilà first row is bolded.

HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("FirstSheet");
HSSFRow rowhead = sheet.createRow(0); 
HSSFCellStyle style = wb.createCellStyle();
HSSFFont font = wb.createFont();
font.setFontName(HSSFFont.FONT_ARIAL);
font.setFontHeightInPoints((short)10);
font.setBold(true);
style.setFont(font);
rowhead.createCell(0).setCellValue("ID");
rowhead.createCell(1).setCellValue("First");
rowhead.createCell(2).setCellValue("Second");
rowhead.createCell(3).setCellValue("Third");
for(int j = 0; j<=3; j++)
rowhead.getCell(j).setCellStyle(style);

Solution 4 - Java

This worked for me

	Object[][] bookData = { { "col1", "col2", 3 }, { "col1", "col2", 3 }, { "col1", "col2", 3 },
			{ "col1", "col2", 3 }, { "col1", "col2", 3 }, { "col1", "col2", 3 } };

	String[] headers = new String[] { "HEader 1", "HEader 2", "HEader 3" };
	
	int noOfColumns = headers.length;
	int rowCount = 0;

	Row rowZero = sheet.createRow(rowCount++);
	CellStyle style = workbook.createCellStyle();
	Font font = workbook.createFont();
	font.setBoldweight(Font.BOLDWEIGHT_BOLD);
	style.setFont(font);
	for (int col = 1; col <= noOfColumns; col++) {
		Cell cell = rowZero.createCell(col);
		cell.setCellValue(headers[col - 1]);
		cell.setCellStyle(style);
	}

Solution 5 - Java

A worked, completed and simple example:

package io.github.baijifeilong.excel;

import lombok.SneakyThrows;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileOutputStream;

/**
 * Created by [email protected] at 2019/12/6 11:41
 */
public class ExcelBoldTextDemo {

    @SneakyThrows
    public static void main(String[] args) {

        new XSSFWorkbook() {{
            XSSFRow row = createSheet().createRow(0);
            row.setRowStyle(createCellStyle());
            row.getRowStyle().getFont().setBold(true);
            row.createCell(0).setCellValue("Alpha");
            row.createCell(1).setCellValue("Beta");
            row.createCell(2).setCellValue("Gamma");
        }}.write(new FileOutputStream("demo.xlsx"));
    }
}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionKrishnamacharyView Question on Stackoverflow
Solution 1 - JavaArtiBuccoView Answer on Stackoverflow
Solution 2 - JavasatenderView Answer on Stackoverflow
Solution 3 - JavaAdhamoView Answer on Stackoverflow
Solution 4 - Javaomkar sirraView Answer on Stackoverflow
Solution 5 - JavaBaiJiFeiLongView Answer on Stackoverflow