|
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. 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:
www.eclipse.org
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!
|