Como manipular arquivos Excel com Jakarta POI – Parte I
O Projeto POI é um aglomerado de APIs que tem como função manipular arquivos do tipo Microsoft OLE 2.
O Projeto POI é um aglomerado de APIs que tem como função manipular arquivos do tipo Microsoft OLE 2. Todo esse processo se dá na linguagem Java, o que facilita a nossa vida de mortais programadores. No entanto, vale lamentar que, atualmente, a API não está completa para todos os formatos. Somente a HSSF (formato Excel) disponibiliza grande parte dos comandos utilizados no Excel para a manipulação de planilhas. Para os outros programas, PowerPoint e Word, existem poucas opções de manipulação em termos de recurso. Falar do projeto POI-HSSF referente à leitura e escrita de arquivos Excel é o tema.
Configurando o ambiente
Utilizaremos o Eclipse como IDE:
Download do Jakarta POI:
http://www.apache.org/dyn/closer.cgi/jakarta/poi/
Descompacte o arquivo poi-bin-3.0-alpha3-20061212.zip (versão com data deste artigo) e copie o arquivo poi-3.0-alpha3-20061212.jar para o classpath da sua aplicação. Pronto, o ambiente já está configurado para a criação da primeira planilha.
Da criação de uma planilha
Para gerar um arquivo de planilha Excel, utilizaremos a classe HSSFWorkbook. Observe o conjunto de códigos abaixo:
package glaucioguerra.info.main;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class Main {
public static void main(String[] args) throws IOException {
HSSFWorkbook wb = new HSSFWorkbook();
FileOutputStream stream = new FileOutputStream("c:/planilha.xls");
wb.write(stream);
}
}
A classe Workbook necessita de um FileOutputStream para armazenar a planilha em disco, que foi gerada no raiz c:\planilha.xls, conforme figura:
Adicionando planilhas ao Workbook
É possível adicionar planilhas ou Sheets em um Workbook. A classe que representa um sheet é a HSSFSheet. No exemplo será adiciona à planilha três sheets.
package glaucioguerra.info.main;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class Main {
public static void main(String[] args) throws IOException {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet1 = wb.createSheet("Planilha Um");
HSSFSheet sheet2 = wb.createSheet("Planilha Dois");
HSSFSheet sheet3 = wb.createSheet("Planilha Três");
FileOutputStream stream = new FileOutputStream("c:/planilha.xls");
wb.write(stream);
}
}
O método createSheet recebe como parâmetro uma String para identificar o nome da planilha adicionada ao Workbook. O retorno desta função é do tipo HSSFSheet, que será utilizado para manipular as células pertencentes à planilha. A relação entre essas classes seria da seguinte forma:
A figura ilustra o resultado do código acima, ao qual foram adicionados os Sheets Planilha Um, Planilha Dois e Planilha Três.
Adicionando conteúdo nas células
Para adicionar um conteúdo em uma célula é necessário instanciar uma classe do tipo HSSFRow, na qual serão adicionadas as células que são representadas pela classe HSSFCell.
Segue o exemplo:
package glaucioguerra.info.main;
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 Main {
public static void main(String[] args) throws IOException {
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 = new FileOutputStream("c:/planilha.xls");
wb.write(stream);
}
}
O método createCell adiciona células à linha da planilha. Toda a instância da classe HSSFRow deve receber um inteiro como parâmetro na criação do objeto, que representa a posição da linha na planilha. A seqüência começa em zero conforme utilizada no exemplo.
Resultado
Na segunda parte deste tema será feito um panorama da criação de células do tipo data e suas formatações: cores, alinhamento e mesclagem de células. Acompanhe a seqüência dos próximos artigos, pois temos muito a falar nos mais diversos desdobramentos desse assunto.
Até breve!


em 6/7/2007 17:41 - Responder

Josmar Barbosaem 7/7/2007 12:48 - Responder

Glaucio Guerraem 9/7/2007 13:07 - Responder

Enzoem 20/8/2007 14:00 - Responder

Glaucio Guerraem 29/8/2007 12:08 - Responder

Markusem 18/9/2007 15:00 - Responder

Glaucio Guerraem 12/10/2007 06:01 - Responder


em 19/6/2007 12:31 - Responder

Glaucio Guerraem 2/7/2007 17:01 - Responder

José Brandãoem 4/7/2007 07:04 - Responder

Peamem 19/11/2007 15:17 - Responder

Mscostaem 3/12/2007 13:53 - Responder


em 6/7/2007 11:24 - Responder


em 6/7/2007 11:24 - Responder

Diogoem 30/4/2008 21:30 - Responder


em 29/5/2008 01:37 - Responder


E em segundo lugar peço que se possível vc tire uma dúvida que surgiu...Bem tu ensinaste a criar uma planilia e modificar as celulas, mas se eu apenas quizesse carregar uma planilia já existente com dados e que meu programa tivesse a opção de escolher uma das abas da mesma como seria o código ? podes me auxiliar me enviando um exemplo ?
Não sei se fui claro, espero que sim!
desde já agradeço!
em 6/9/2008 10:11 - Responder

Ramon Franco SimãoMuito bom o artigo, mas só ficou faltando isso!
em 18/10/2010 09:56 - Responder

Dyego Souza Do Carmoem 28/10/2010 13:47 - Responder


como faco para ter certeza.
em 7/11/2011 16:19 - Responder

Dyego Souza Do Carmoem 9/11/2011 09:04 - Responder
Space do autor

Estudo comparativo entre banco de dados IBM Informix e Microsoft SQL

19
0
Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!