Excel > JExcel API > How to add Background Color and Pattern to Excel Cells
How to add Background Color and Pattern to Excel Cells
Java Excel API is an open source java library to read, write and modify Excel spread sheets.
This requires the library jxl-2.6.12.jar to be in classpath.
The following example shows how to set background color and pattern of a Cell in Excel Spread sheet.
package com.bethecoder.tutorials.jexcelapi.write;
import java.io.File;
import java.io.IOException;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.format.Colour;
import jxl.format.Pattern;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
public class CellBackgroundPatternTest {
/**
* @param args
* @throws IOException
* @throws IOException
* @throws WriteException
* @throws BiffException
*/
public static void main ( String [] args ) throws IOException, WriteException {
//Creates a writable workbook with the given file name
WritableWorkbook workbook = Workbook.createWorkbook ( new File ( "C:/JXL/BGPattern.xls" )) ;
WritableSheet sheet = workbook.createSheet ( "My Sheet" , 0 ) ;
// Create the label, specifying content and format
Label label = new Label ( 1 , 2 , "ABC" , getCellFormat ( Colour.GREEN, Pattern.GRAY_25 )) ;
Label label2 = new Label ( 1 , 4 , "PQR" , getCellFormat ( Colour.BLUE, Pattern.GRAY_50 )) ;
Label label3 = new Label ( 1 , 6 , "XYZ" , getCellFormat ( Colour.ORANGE, Pattern.GRAY_75 )) ;
sheet.addCell ( label ) ;
sheet.addCell ( label2 ) ;
sheet.addCell ( label3 ) ;
//Writes out the data held in this workbook in Excel format
workbook.write () ;
//Close and free allocated memory
workbook.close () ;
}
// Create cell font and format
private static WritableCellFormat getCellFormat ( Colour colour, Pattern pattern ) throws WriteException {
WritableFont cellFont = new WritableFont ( WritableFont.TIMES, 16 ) ;
WritableCellFormat cellFormat = new WritableCellFormat ( cellFont ) ;
cellFormat.setBackground ( colour, pattern ) ;
return cellFormat;
}
}
It gives the following output,