How to Merge Cells in Excel Spreadsheet
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 merge Cells in Excel Spread sheet.
package com.bethecoder.tutorials.jexcelapi.write;
import java.io.File;
import java.io.IOException;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.format.VerticalAlignment;
import jxl.read.biff.BiffException;
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 MergeCellsTest {
/**
* @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/MergeCells.xls" )) ;
WritableSheet sheet = workbook.createSheet ( "My Sheet" , 0 ) ;
// Create cell font and format
WritableFont cellFont = new WritableFont ( WritableFont.TIMES, 16 ) ;
cellFont.setColour ( Colour.BLUE ) ;
WritableCellFormat cellFormat = new WritableCellFormat ( cellFont ) ;
cellFormat.setBackground ( Colour.ORANGE ) ;
cellFormat.setAlignment ( Alignment.CENTRE ) ;
cellFormat.setVerticalAlignment ( VerticalAlignment.CENTRE ) ;
cellFormat.setBorder ( Border.ALL, BorderLineStyle.THIN ) ;
//Merge col[0-3] and row[1]
sheet.mergeCells ( 0 , 1 , 3 , 1 ) ;
Label lable = new Label ( 0 , 1 ,
"BE THE CODER" , cellFormat ) ;
sheet.addCell ( lable ) ;
//Merge col[0-5] and row[3-5]
sheet.mergeCells ( 0 , 3 , 5 , 5 ) ;
lable = new Label ( 0 , 3 ,
"BE THE CODER" , cellFormat ) ;
sheet.addCell ( lable ) ;
//Writes out the data held in this workbook in Excel format
workbook.write () ;
//Close and free allocated memory
workbook.close () ;
}
}
It gives the following output,