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