How to Read Excel file using Java

Normally, to read a data in excel, first we should have access to workbook, sheet which we want to read as workbook contains multiple sheets and if you want to read a particular cell we need location of a Cell.

In this article, we will discuss how to access workbook, sheet and a Cell using Jxl library Download jxl jar and add it to build path.

You can also consider usingApache Poi Library to perform read and write operations with excel sheets because of its better documentation, more features, active development, and Excel 2007+ format support.

As we know JXL doesn't support Excel 2007 ".xlsx" file format. It only supports the old BIFF (binary) ".xls" format. Where as Apache POI supports both Excel 2003 - xls and Excel 2007 - xlsx file formats.

To start with gaining access to Workbook, we should always remember the below command:

String FilePath = "d://filepath.xls";
FileInputStream fs = new FileInputStream(FilePath);
Workbook wb = Workbook.getWorkbook(fs);

Or You can also directly send the file as below

Workbook wb = Workbook.getWorkbook(new File("samplefile.xls"));

Now to get the access to the particular sheet, we should use the below command:

Sheet sh = wb.getSheet(0); // this is to get the access to Sheet1. 

If you want to get the access to sheet2, you should specify as below:

Sheet sh = wb.getSheet(1);

You can also get the sheet access by sheet name, you should specify as below:

Sheet sh = wb.getSheet("sheet1");

Now we will get the content in particular location, which will return contents as a string

String CellGetContent = sh.getCell(0,0).getContents();

We can also write it as :


There is an other style to get the cell contents as below:

Cell Row0Col0 = sheet.getCell(0,0);
Cell Row1Col1 = sheet.getCell(1,1);
String FirstRowFirstColumn = Row0Col0.getContents();
String SecondRowSecondColumn = Row1Col1.getcontents();

The below is the input sheet for the example program:

excel sheet

Please find the below code in which we will read a data from excel sheet and print using for loop

package com.pack;

import jxl.Sheet;
import jxl.Workbook;

public class ReadExcelFile {
	public void readExcel() throws BiffException, IOException {
		String FilePath = "D:\\sampledoc.xls";
		FileInputStream fs = new FileInputStream(FilePath);
		Workbook wb = Workbook.getWorkbook(fs);

		// TO get the access to the sheet
		Sheet sh = wb.getSheet("Sheet1");

		// To get the number of rows present in sheet
		int totalNoOfRows = sh.getRows();

		// To get the number of columns present in sheet
		int totalNoOfCols = sh.getColumns();

		for (int row = 0; row < totalNoOfRows; row++) {

			for (int col = 0; col < totalNoOfCols; col++) {
				System.out.print(sh.getCell(col, row).getContents() + "\t");

	public static void main(String args[]) throws BiffException, IOException {
		ReadExcelFile DT = new ReadExcelFile();

The output of the below program is:

Username password
testuser1 testpassword1
testuser2 testpassword2
testuser3 testpassword3
testuser4 testpassword4

Here the most significant difference between JXL and Apache POI is, JXL does not support the ".xlsx" format (Excel 2007 and +) , it just supports the old ".xls" format. Where as Apache POI supports both XLS and XLSX formats.
And JXL API was last updated in 2009 BUT Apache POI is actively maintained.

Hope the above code works. Please let me know if you face any problems. Thank you.

Excel API: 


Will anybody help me please because my ReadExcelFile showing error but i have imported all the jar file

good explanation, thanks


Expecing more examples like this we can understand well !!

thanks a lot and keep up the good work

once we read the row of an Excel sheet, how can we store it in a linked list node?

error shown is that
jxl package doesnot exist

what shall i do?

please help

thanks in advance


Thanks.. It is really helpful

Hi , I have added all the mandatory jars like , dom4j-1.6.jar , POI-OOXML-3.14.jar,XMLBeans-2.6.0.jar,POI-OOXML-Schemas-3.14.jar, poi-3.14.jar , but still getting the error
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
XSSFWorkbook cannot be resolved to a type
XSSFWorkbook cannot be resolved to a type
XSSFSheet cannot be resolved to a type

Please reply ...

Hi ,

Nice article for selenium excel.

Add new comment