Problema ao importar arquivo Excel com JSF e Primefaces

Boa tarde a todos, estou com o seguinte problema. Estou tentando importar uma planilha em EXCEL para minha aplicação e persistir os dados da mesma em um banco de dados.
Porém estou com o seguinte problema, quando eu leio a planilha ela esta lendo linhas a mais Ex: A planilha tem 4 linhas preenchidas com os dados que quero popular, ela lê como se tivesse 26. Gostaria de alguns dos colegas se alguém pode me ajudar.

O Código do meu JSF é o seguinte:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">

<ui:composition template="/template/interna.xhtml">
	<ui:define name="titulo">Importar Promotores</ui:define>

	<ui:define name="corpo">
	
		<h:form id="formulario">

			<div id="loading">
				<p:ajaxStatus rendered="true">
					<f:facet name="start">
						<h:graphicImage library="images" name="loading.gif" />
					</f:facet>

					<f:facet name="complete">
						<h:outputText value="" />
					</f:facet>
				</p:ajaxStatus>
			</div>

			<p:panel header="Importar Promotores" closable="true">
				<p:toolbar>
					<p:toolbarGroup align="left">
						<h:form enctype="multipart/form-data" id="envia">
							<p:fileUpload update="tablePromotores"
								fileUploadListener="#{importPromotorBean.readFile}"
								mode="simple" allowTypes="*.xls;*.xlsx;" auto="false" />
						</h:form>
						<p:spacer></p:spacer>
						<p:commandButton
							action="#{importPromotorBean.saveAllPromotores}" value="Salvar"
							ajax="false" update="message" image="ui-icon ui-icon-document" />
					</p:toolbarGroup>
				</p:toolbar>

				<p:messages id="message" />

				<br />
				<div id="consultar">
					<p:dataTable id="tablePromotores"
						value="#{importPromotorBean.listSheet}" var="promotor"
						width="100%" border="1" cellpadding="0" cellspacing="0" rows="15"
						paginator="true"
						emptyMessage="Nenhum registro encontrado com este critério."
						rendered="true">

						<p:column headerText="Nome" filterBy="#{promotor.nome}"
							filterMatchMode="contains">
							<h:outputText value="#{promotor.nome}" />
						</p:column>

						<p:column headerText="Login" filterBy="#{promotor.usuario}"
							filterMatchMode="contains">
							<h:outputText value="#{promotor.usuario}" />
						</p:column>

						<p:column headerText="Senha" filterBy="#{promotor.senha}"
							filterMatchMode="contains">
							<h:outputText value="#{promotor.senha}" />
						</p:column>

						<p:column headerText="Email" filterBy="#{promotor.email}"
							filterMatchMode="contains">
							<h:outputText value="#{promotor.email}" />
						</p:column>

						<p:column headerText="Telefone" filterBy="#{promotor.telefone}"
							filterMatchMode="contains">
							<h:outputText value="#{promotor.telefone}" />
						</p:column>

					</p:dataTable>
				</div>
			</p:panel>
		</h:form>

	</ui:define>
</ui:composition>
</html>

Código do Java Bean:

package com.controlmobile.web.control;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

import com.controlmobile.entity.Promotor;
import com.controlmobile.model.PromotorRN;

@ManagedBean(name = "importPromotorBean")
@RequestScoped
public class ImportPromotorBean {

	private String nome;
	private String login;
	private String senha;
	private String email;
	private String telefone;
	private boolean situacao;
	private List<Promotor> listSheet;
	private Promotor promotor;
	private ContextoBean contextoBean = new ContextoBean();

	public ImportPromotorBean() {
		this.listSheet = new ArrayList<Promotor>();
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getTelefone() {
		return telefone;
	}

	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}

	public boolean isSituacao() {
		return situacao;
	}

	public void setSituacao(boolean situacao) {
		this.situacao = situacao;
	}

	public Promotor getPromotor() {
		return promotor;
	}

	public void setPromotor(Promotor promotor) {
		this.promotor = promotor;
	}

	public ContextoBean getContextoBean() {
		return contextoBean;
	}

	public void setContextoBean(ContextoBean contextoBean) {
		this.contextoBean = contextoBean;
	}

	public void setListSheet(List<Promotor> listSheet) {
		this.listSheet = listSheet;
	}

	public List<Promotor> getListSheet() {

		try {
			Workbook workbook = Workbook.getWorkbook(new File(
					"D:/promotores.xls"));

			Sheet sheet = workbook.getSheet(0);

			int linhas = sheet.getRows();
			int colunas = sheet.getColumns();

			System.out.println("Numero de linhas: " + linhas);
			System.out.println("Numero de colunas: " + colunas);

			for (int i = 1; i < linhas;i++) {

				System.out.println("Linha: " + i);

				Cell a1 = sheet.getCell(0, i);
				Cell b2 = sheet.getCell(1, i);
				Cell c3 = sheet.getCell(2, i);
				Cell d4 = sheet.getCell(3, i);
				Cell e5 = sheet.getCell(4, i);

				this.promotor = new Promotor();

				this.nome = a1.getContents();
				this.login = b2.getContents();
				this.senha = c3.getContents();
				this.email = d4.getContents();
				this.telefone = e5.getContents();

				this.situacao = true;

				this.promotor.setNome(this.nome);
				this.promotor.setUsuario(this.login);
				this.promotor.setSenha(this.senha);
				this.promotor.setEmail(this.email);
				this.promotor.setTelefone(this.telefone);
				this.promotor.setSituacao(this.situacao);
				this.promotor.setEmpresa(this.contextoBean.getUsuarioLogado()
						.getEmpresa());

				this.listSheet.add(this.promotor);

			}

		} catch (BiffException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return this.listSheet;
	}

	public void saveAllPromotores() {
		PromotorRN promotorRN = new PromotorRN();
		for (int i = 0; i < this.listSheet.size(); i++) {
			promotorRN.save(getListSheet().get(i));
		}

		FacesContext context = FacesContext.getCurrentInstance();
		context.addMessage(null, new FacesMessage(
				"Promotores importado com sucesso"));
	}
}

Atenciosamente
Wellington Fernandes

uma coisa chata no excel é que se você, por exemplo, editou uma célula na linha 20 e depois apagou o conteúdo, ele te diz que a planilha tem 20 linhas (pelo menos, rsrsr). O que pode ser feito é verificar se as células estão vazias.