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:

 

prvrsleaep1fig01.jpg 

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.