Ler arquivo do excel e gerar um Relatorio sobre ele

21 respostas
evertonsilvagomesjav

Bom dia á todos…Bom estou com um problema que parece ser simples mas pra mim esta muito dificil =/, se vcs puderem me ajudar vou agradecer de mais. Eu preciso ler uma planilha do Excel e gerar um Relatorio sobre essa planilha…Mas nao tenho a minimia ideia de como fazer isso…Tem como vcs me ajudarem?

21 Respostas

renanreismartins

de uma estudada na Jakarta POI. é simples de manipular arquivos do excel com ela, com relaçao ao relatorio vc pode usar o Jasper

qq duvida poste

abrasssss

evertonsilvagomesjav

renan vc tem um tutorial de como utilizar esse Jakarta? E com relaçao ao Jasper se vc puder me ajudar tb, nunca usei =/

H

Sobre uso do jakarta:
http://www.devmedia.com.br/articles/viewcomp.asp?comp=5380
http://www.devmedia.com.br/articles/viewcomp.asp?comp=5891

http://poi.apache.org/

Aqui tem outro exemplo:
http://www.guj.com.br/posts/list/31858.java

Espero ter ajudado.

renanreismartins

com relaçao ao jasper baixe o ireport… existem mil maneiras de trabalhar com o jasper… procure aprender o basico 1o, dps explique como vai ser seu relatorio que te ajudo com as duvidas

aqui seguem links interessantes:


http://javafree.uol.com.br/artigo/874046/Java-Reporting-com-JasperReports-e-iReport-Open-SourceUsando-Grafico.html
bem completo…

http://www.ufjf.br/facom/files/2009/11/Tutorial-iReport.doc

http://www.cin.ufpe.br/~tjs/Tutorial%20IReport.doc mais avancado…

abrasssssss

evertonsilvagomesjav

to tentando seguir os tutoriais fiz o dl do Jakarta mas nao quer da o import...

package mascarenhas.relatorio.telefonia;

public class Tel {

		
	public static void main(String[] args) {
	
		
		HSSFWorkbook wb = new HSSFWorkbook(); // nao importa o class...

        

	
	}

	
	
}
H

Baixasse as bibliotecas?

evertonsilvagomesjav

creio que sim…fiz o dl daqui…

http://mirror.pop-sc.rnp.br/apache/jakarta/poi/dev/bin/

3º Link.

H

Tenta esse aqui:

http://www.apache.org/dyn/closer.cgi/poi/release/bin/poi-bin-3.6-20091214.zip

1º link.

renanreismartins

como assim nao quer dar import ? vc quer dizer que sua IDE nao coloca os imports automaticamente?

vc colocou as libs no seu classpath ?

abraasss

evertonsilvagomesjav

nesse tutorial so esta falando pra colocar o jar… olha só:

http://www.devmedia.com.br/articles/viewcomp.asp?comp=5380.

H

Eu acho que esse artigo é um pouco antigo.

Pegue direto da fonte. Aqui tem tudo que você precisa
http://poi.apache.org/faq.html

E a versão mais recente das bibliotecas:
http://www.apache.org/dyn/closer.cgi/poi/release/bin/poi-bin-3.6-20091214.tar.gz

Espero ter ajudado.

evertonsilvagomesjav

onde eu coloco agora as libs? No jdk ou no jre?

H

seu projeto é WEB ou Desketop? Qual IDE você usa?

Se for desktop : nomeProjeto -> crie uma pasta chamada lib… coloque elas dentro dessa pasta.

Se for WEB: nomeProjeto -> WebContent -> WEB-INF -> lib…coloque elas dentro dessa pasta.

evertonsilvagomesjav

é desktop… uso elicpse

C:\Documents and Settings\everton\workspace\Mascarenhas\

nome do projeto e Mascarenhas.

evertonsilvagomesjav

cliquei no projeto fui em build path…add external archives, e cliquei no jar parece que funcionou…agora começa a luta pra ler a plhanilha e gerar um relatorio dela…

H

Boa sorte!

evertonsilvagomesjav

rs henrique agora me gerou uma duvida, baixei o Jakarta e tals fiz o teste aqui:

package mascarenhas.relatorio.telefonia;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class Tel {

		
	public static void main(String[] args) {
	
		 HSSFWorkbook wb = new HSSFWorkbook();

         HSSFSheet sheet1 = wb.createSheet("Planilha Um");

         HSSFSheet sheet2 = wb.createSheet("Planilha Dois");

         HSSFSheet sheet3 = wb.createSheet("Planilha Três");

         HSSFRow row = sheet1.createRow(0);

         row.createCell((short) 0).setCellValue("Isto é uma String");

         FileOutputStream stream = null;
		
         try {
			
        	 stream = new FileOutputStream("c:/planilha.xls");
			
        	 wb.write(stream);
        	 
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        
	}
	
}

Sem o Jakarta

package mascarenhas.relatorio.telefonia;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class Teste {

	public static void main(String[] args) {
				
		try {
		
			FileOutputStream f = new FileOutputStream("c:/planilha1.xls");
			
			File fa = new File("c:/arquivo.xls");
						
			fa.createNewFile();
		
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
}

Na API do java nao tem como ler um xls nao? Pq com o Jakarta ele gerou um xls e so com API File tb gerou qual a vantagem disso? Outra coisa atraves da API do java nao tem como LER o arquivo xls nao? Pq atraves desse exemplo ele manipulou a planilha ou seja criou celulas escreveu nela e tals...

H

Começa a manipular o arquivo criado com o jakarta(coloca formatação por exemplo), depois tenta fazer isso com a api do java.
Se conseguir me avisa.

evertonsilvagomesjav

kkkk eu sou leigo nem sei se tem como, mas com o jakarta tem como ler? Pq eu to precisando e de ler um arquivo ja existente xls e gerar um relatorio dele.

H

Vê se isso te ajuda.
http://www.guj.com.br/posts/list/134926.java

evertonsilvagomesjav

erro:

java.lang.IllegalStateException:

package mascarenhas.relatorio.telefonia;

import java.io.FileInputStream;
import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class Teste {

	public static void main(String[] args) throws IOException {
				
		HSSFWorkbook wb = null;
        HSSFRow row = null;   
        HSSFCell cell = null;   
        HSSFSheet sheet1 = null;
        HSSFSheet sheet2 = null;
        HSSFSheet sheet3 = null;
        HSSFRow row1 = null;
        HSSFRow row2 = null;
        HSSFCell cel = null;
        HSSFCell cel1 = null;
        HSSFCell cel2 = null;
        HSSFCell cel3 = null;
        
        String path = "c:/teste.xls";   
					
		FileInputStream fis = new FileInputStream(path);
		
		wb = new HSSFWorkbook(fis);   
		
		sheet1 = wb.getSheetAt(0);
		
		row1 = sheet1.getRow(0);
		row2 = sheet1.getRow(1);
		
		cel = row1.getCell(0);
		cel1 = row1.getCell(1);
		cel2 = row2.getCell(0);
		cel3 = row2.getCell(1);
		String nome = cel.getStringCellValue();
				
		System.out.println(nome + " " +cel1.getStringCellValue() +"\n" +cel2.getStringCellValue() +" "
						  +cel3.getStringCellValue()); // nessa instrução aqui cel3, essa celula no excel tem um numero 20
				
	}
}
Criado 23 de fevereiro de 2010
Ultima resposta 23 de fev. de 2010
Respostas 21
Participantes 3