Boa tarde galera, estou com o B.O. que não faço ideia do que possa estar ocorrendo. Basicamente estou puxando uma planilha excel para o Java usando a API JXL, até ai tudo bem, consegui trazer para um ArrayList. Criei uma classe para retornar esse ArrayList, quando atribuo esse retorno a outro ArrayList e syso a lista, no console aparece apenas o ultimo item do ArrayList.
Segue o código:
Excel 1
public class ArqExcelProd {
private List<Produto> produtos = new ArrayList<Produto>();
public List<Produto> listaProdutos() throws BiffException, IOException {
// ABRE CADASTRO DE PRODUTOS MATR010.XLS
File excel = new File("C:/Users/Hawk/Desktop/matr010.xls");
Workbook workbook = Workbook.getWorkbook(excel);
Sheet sheet = workbook.getSheet(0);
Produto prod = new Produto();
for (int cont = 0; cont < sheet.getRows(); cont++) {
prod.setCodigo(sheet.getCell(0, cont).getContents());
prod.setDescricao(sheet.getCell(1, cont).getContents());
prod.setNcm(sheet.getCell(8, cont).getContents());
/*
System.out.println("-----------------------------------------------------------------------------------------------");
System.out.println("Código: " + prod.getCodigo() + "\nDescrição: " + prod.getDescricao() + "\nNCM: " + prod.getNcm());
System.out.println("-----------------------------------------------------------------------------------------------");
*/
produtos.add(prod);
}
return produtos;
}
}
Excel 2
public class ArqExcelFat {
private List<RelFat> fat = new ArrayList<RelFat>();
public List<RelFat> listaFat() throws BiffException, IOException {
// ABRE CADASTRO DE PRODUTOS MATR010.XLS
File excel = new File("C:/Users/Hawk/Desktop/matr780.xls");
Workbook workbook = Workbook.getWorkbook(excel);
Sheet sheet = workbook.getSheet(0);
RelFat relFat = new RelFat();
for (int cont = 1; cont < sheet.getRows(); cont++) {
if(!(sheet.getCell(4, cont).getContents() == "")){
relFat.setCodigo(sheet.getCell(4, cont).getContents());
}
relFat.setValor(Double.parseDouble((sheet.getCell(12, cont).getContents()).replace(",", ".")));
/*
System.out.println("-----------------------------------------------------------------------------------------------");
System.out.println("Código: " + relFat.getCodigo() + "\nValor: " + relFat.getValor());
System.out.println("-----------------------------------------------------------------------------------------------");
*/
fat.add(relFat);
}
return fat;
}
}
Classe que será usada para unir os dois arquivos Excel
public class UneFatNcm {
private ArqExcelProd excelProd = new ArqExcelProd();
private ArqExcelFat excelFat = new ArqExcelFat();
private List<Produto> produtos = new ArrayList<Produto>();
private List<RelFat> relFat = new ArrayList<RelFat>();
private List<Faturamento> faturamento = new ArrayList<Faturamento>();
public List<Faturamento> juncao(){
System.out.println("Iniciando junção de arquivos...");
//PUXA XLS PRODUTOS
try {
this.produtos = excelProd.listaProdutos();
System.out.println("Produtos carregados: " + this.produtos.size());
} catch (BiffException e) {
System.out.println(e);
e.printStackTrace();
} catch (IOException e) {
System.out.println(e);
e.printStackTrace();
}
//PUXA XLS RELATORIO FATURAMENTO
try {
this.relFat = excelFat.listaFat();
System.out.println("Produtos faturados: " + this.relFat.size());
} catch (BiffException e) {
System.out.println(e);
e.printStackTrace();
} catch (IOException e) {
System.out.println(e);
e.printStackTrace();
}
for(int cont = 0; cont < this.produtos.size(); cont++){
System.out.println("Código Produto: " + this.produtos.get(cont).getCodigo() + "\nNCM: " + this.produtos.get(cont).getNcm());
}
for(int cont = 0; cont < this.relFat.size(); cont++){
System.out.println("Código Produto: " + this.relFat.get(cont).getCodigo() + "\nValor: " + this.relFat.get(cont).getValor());
}
for(int cont = 0; cont < faturamento.size(); cont++){
System.out.println("NCM: " + faturamento.get(cont).getNcm() + "\nValor: " + faturamento.get(cont).getValor());
}
return faturamento;
}
}