Trabalhando com arquivos office Parte 1
setembro 11, 2007 às 1:09 pm | Publicado em Java | 1 ComentárioQuem nunca passou por um problema ao trabalhar com arquivos no formato da Microsoft como word, excel e cia?
Precisando migrar uma planilha de controle toda feita em excel e com muitíssimos dados, conheci o projeto POI da jakarta, que simplesmente salvou muita gente de digitação exaustiva 🙂 .
Para utilizar é relativamente fácil, basta efetuar download da última versão do pacote no site http://jakarta.apache.org/poi/index.html adicionar as libs ao seu projeto e pronto, abaixo um código de exemplo que utilizei, e mais abaixo dele uma explicacão linha a linha.
import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; /** * * @author fabiano */ public class LeExcel { public static void main(String[] args) { try { POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("/home/fabiano/planilhateste.xls")); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet sheet = wb.getSheetAt(2); HSSFRow row = sheet.getRow(1); HSSFCell cell = row.getCell((short)4); System.out.println(cell); } catch (Exception e) { e.printStackTrace(); } } }
Indicando o arquivo que deverá ser aberto
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("/home/fabiano/planilhateste.xls"));
A Classe HSSFWorkbook é a principal de todo o contexto, de onde você pega o corpo do documento
onde pode se criar as folhas (sheet) ou ler as existentes
HSSFWorkbook wb = new HSSFWorkbook(fs);
Aqui buscamos a folha do excel, começa na numero 0 e vai até n. Uma maneira legal de ver quantas folhas (sheets) ativas existem no documento, basta usar o seguinte método:
wb.getNumberOfSheets()
Neste caso do excel estou pegando a terceira folha, lembre começa em 0
HSSFSheet sheet = wb.getSheetAt(2);
Esta próxima ira definir qual fileira de células iremos utilizar, lembrando que começa da 0 e vai até n
da mesma forma para descobrir quantas fileiras existem basta usar o seguinte método:
sheet.getPhysicalNumberOfRows() HSSFRow row = sheet.getRow(1);
A próxima classe HSSFCell é onde iremos trabalhar diretamente com a célula em sim, podemos pegar qualquer célula e seu respectivo valor, formula, etc … Neste próxima iremos mapear a célula 4 (lembre começa em 0 e vai até n). Caso seja desejável buscar a quantidade de células existentes na fileira, basta usar o seguinte método:
row.getPhysicalNumberOfCells(); HSSFCell cell = row.getCell((short)4);
E finalmente para mostrar o conteúdo da célula, basta mandar imprimir a mesma diretamente, ex:
System.out.println(cell);
Na proxima parte deste artigo explicarei como construir um arquivo excel com dados provinientes de um ResultSet sql.
Blog no WordPress.com.
Entries e comentários feeds.