Lendo e escrevendo arquivos do Excel com a API JXL – Parte I
Como utilizar a API JXL para ler e escrever arquivos no formato do Excel para manipular melhor seus dados.
Em vários casos, seja para importação ou exportação de dados, ler e escrever uma planilha do Excel pode ser necessário, por ser um gerenciador de planilhas eletrônicas mais utilizadas no mundo, ao enviar dados de uma tabela para o usuário, por exemplo, enviar esses dados tabulados dentro de uma planilha deixa muito mais fácil para o usuário o entendimento desses dados.
Por outro lado também são necessárias as vezes que a sua aplicação receba do usuário dados de uma planilha do Excel. A API JXL deixa todo esse tramite muito fácil, sem segredos ou complicadores.
Essa API pode ser baixa do site http://jexcelapi.sourceforge.net/ que é a página oficial do projeto.
Instalando a API e preparando o ambiente
Para instalar a API é muito fácil, basta descompacta-la para uma pasta de sua preferência (é aconselhável que seja um pasta correlata a pasta do seu projeto, para evitar a perda involuntária do arquivo), depois adicionar o arquivo jxl.jar a biblioteca do seu projeto. Abaixo a Figura 01 mostra como ficará o seu projeto apo a inclusão do arquivo na sua biblioteca:
Figura 01. adicionando o arquivo jxl.jar na biblioteca do projeto
Após a inclusão da biblioteca já temos o nosso projeto preparado a utilização e vamos gerar uma planilha de testes para a nossa leitura no seguinte formato:
Coluna1 |
Coluna2 |
Coluna3 |
Valores |
Valores1 |
Valores3 |
Valores4 |
Valores5 |
Valores6 |
Valores7 |
Valores8 |
Valores9 |
Valores10 |
Valores11 |
Valores12 |
Essa planilha é mais viável deixa salva na mesma pasta do nosso projeto e com o nome de teste.xls, porém depois de assimilado todo o conteúdo você pode trabalhar com uma planilha em qualquer parte do disco rígido ou até de uma rede.
Lendo uma planilha do Excel
Agora vamos a parte mais interessante do nosso artigo, após configurada a API e gerada a planilha de teste, vamos começar a produzir nosso código de leitura da planilha. O nosso primeiro passo dentro do código é definir os import´s que iremos utilizar:
import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.NumberCell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import javax.swing.JOptionPane;
Agora vamos começar a trabalhar definindo e abrindo a nossa planilha de teste, observe que devemos tratar as exceptions IOException e BiffException:
public static void main(String[] args) throws IOException, BiffException {
Workbook workbook = Workbook.getWorkbook(new File("teste.xls"));
Agora vamos indicar a abertura da primeira planilha e fazer uma contagem para saber qual a quantidade total de linhas tem a planilha:
Sheet sheet = workbook.getSheet(0);
int linhas = sheet.getRows();
Agora vamos exibir uma mensagem para indicar o inicio do processamento de leitura e iniciar um laço for para varrer todas as linhas da planilha já selecionada:
System.out.println("Iniciando a leitura da planilha XLS:");
for(int i = 0; i < linhas; i++){
Agora vamos dentro do laço for capturar os valores das células da planilha, notem o tipo de variável “Cell” mais adiante esse tipo terá que ser tratado para string, number ou outro tipo conforme a sua necessidade, irei demostrar como efetuar essas operações mais adiante:
Cell a1 = sheet.getCell(0, i);
Cell a2 = sheet.getCell(1, i);
Cell a3 = sheet.getCell(2, i);
Como no nosso exemplo somente utilizamos células com valores de texto, abaixo é possível obervar como converter o valor de Cell para uma String:
String as1 = a1.getContents();
String as2 = a2.getContents();
String as3 = a3.getContents();
Agora para facilitar a visualização do nosso trabalho vamos dar um comando para imprimir no terminal o resultado da nossa captura de dados da planilha:
System.out.println("Coluna 1: " + as1);
System.out.println("Coluna 2: " + as2);
System.out.println("Coluna 3: " + as3);
Pronto, o processo de abertura e leitura já foi concluído, agora é preciso fechar o laço for e o arquivo para evitar algum tipo de corrupção se a nossa aplicação for fechada abruptamente:
}
workbook.close();
Todo o código está finalizado e pronto para ser estudado e melhorado conforme suas necessidades.
Considerações finais
Como pode ser visto neste artigo é muito simples trabalhar com planilhas do Excel no formato XLS utilizando essa API, com a API além da leitura de dados é possível ler de várias planilhas internas, ler figuras e uma infinidade de outras coisas mais disponíveis na planilha. Basta analisar a sua necessidade e estudar a documentação da API para a sua correta aplicação.
Com uma grande gama de banco de dados diferentes e inúmeras solução de softwares incompatíveis entre si, as vezes não é possível utilizar a troca de dados utilizando o XML ou ainda é o usuário que irá nos passar esses dados, deixando o XML inviável, assim com o usuário montando a planilha podemos ler e aproveitar toda a informação para a nossa aplicação de forma rápida e simples.
A API é uma via de mão dupla, ou seja, além da leitura ela também contempla a escrita de uma planilha XLS. No próximo artigo irei demonstrar como escrever uma planilha XLS a partir da sua aplicação.