quinta-feira, 29 de setembro de 2016

Criação de Excel com Java e Apache Poi

Projeto Simples para criar um arquivo Excel com Java e Apache POI

Primeiro criamos a Classe Model Usuário:

public class User {
private int id;
private String name;
private String email;
private String password;
private String adress;
private int telefone; //getters e setter
 
Agora vamos criar a Classe que vai criar o Excel, com um método main que vai executar nosso programa e gerar o Excel. 

public class CreateExcel {
private static final String fileName = "C:/apachepoi/usuarios.xls";
public static void main(String[] args) throws IOException {} }

Dentro da Pasta C:/apachepoi vamos adicionar um arquivo .xls que será o nosso arquivo modelo, do qual podemos configurar como desejarmos colocar um template, logo, titulo das informações que serão adicionadas, etc. No caso estamos usando o usuarios.xls. 

Dentro desse método vamos adicionar as informações do usuário em memoria, para podermos ter informações reais para gerar o relatório,  

public static void main(String[] args) throws IOException {
List<User> lisUsers = new ArrayList<User>();
lisUsers.add(new User(1, "Bruno", "bruno@gmail.com","senha", 9876525, "Aclimacao, 155"));
lisUsers.add(new User(1, "Eduardo", "eduardo@gmail.com","senha", 9876525, "Santana, 520"));
lisUsers.add(new User(1, "Carol", "carol@gmail.com","senha", 9876525, "Itaquera, 302"));
lisUsers.add(new User(1, "Marcia", "marcia@gmail.com","senha", 9876525, "Sapopemba, 49"));
lisUsers.add(new User(1, "Gustavo", "gustavo@gmail.com","senha", 9876525, "Vila Prudente, 155"));
lisUsers.add(new User(1, "Rafael", "eduardo@gmail.com","senha", 9876525, "Vila Ema, 275"));
}

A Apache POI contém classes e métodos para trabalhar em todos os documentos do MS-Office. Vamos usar um desses componentes da Biblioteca o HSSF (Horrible formato de planilha): Ele é usado para ler e escrever formato .xls de arquivos MS-Excel, que o que precisamos, então vamos acionar dentro do nosso metodo main:

HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheetUsers = workbook.createSheet("Usuarios");
Em seguida vamos informar em que linha os dados vão começar a ser inseridos. Por exemplo se você criar um template, e tiver adicionado na primeira linha do seu arquivo o titulo das informações que serão inseridas, você vai gerar o arquivo a partir da linha 1 (a contagem é feita a partir da linha 0 que é equivalente a primeira linha), se você não for colocar nenhum titulo então iniciara na linha 0.

int rownum = 0;

Agora vamos criar um for, que vai percorrer pela nossa lista de usuários que criamos com as informações e adicionar no arquivo.

for (User user : lisUsers) { Row row = sheetUsers.createRow(rownum++);
int cellnum = 0;
Cell cellId = row.createCell(cellnum++);
cellId.setCellValue(user.getId());
Cell cellNome = row.createCell(cellnum++);
cellNome.setCellValue(user.getName());
Cell cellEmail = row.createCell(cellnum++);
cellEmail.setCellValue(user.getEmail());
Cell cellSenha = row.createCell(cellnum++);
cellSenha.setCellValue(user.getPassword());
Cell cellTelefone = row.createCell(cellnum++);
cellTelefone.setCellValue(user.getTelefone());
Cell cellAdress = row.createCell(cellnum++);
cellAdress.setCellValue(user.getAdress());
}

Em seguida criamos o arquivo


try { FileOutputStream out = new FileOutputStream(new File(CreateExcel.fileName));


workbook.write(out);
out.close();
System.out.println("Arquivo Excel criado com sucesso!");

E tratamos os eventuais erros:
} catch (FileNotFoundException e) {
System.out.println("Arquivo não encontrado!");
} catch (IOException e) {
System.out.println("Erro na edição do arquivo!");
}
}
}

Agora basta executar o método main e a mágica estará feita. O projeto completo pode ser baixado no Github: Projeto Simples Aplache POI 


Melissa Lobo.

quarta-feira, 28 de setembro de 2016

Apache POI

Apache POI é uma API popular que permite aos programadores criar, modificar e exibir arquivos do Microsoft-Office usando programas Java. É uma biblioteca de código aberto desenvolvido e distribuído pela Apache Software Foundation. Ele contém classes e métodos para decodificar os dados de entrada do usuário ou um arquivo para documentos do Microsoft Office.

Componentes do Apache POI
Apache POI contém classes e métodos para trabalhar em todos os documentos OLE2 compostos de MS-Office. A lista de componentes deste API é dado abaixo:


  • POIFS (Pobre Obfuscation Implementação do Sistema de Arquivos): Este componente é o fator básico de todos os outros elementos de POI. Ele é usado para ler arquivos diferentes explicitamente.
  • HSSF (Horrible formato de planilha): Ele é usado para ler e escrever formato .xls de arquivos MS-Excel.
  • XSSF (XML SpreadSheet Format): É usado para o formato de arquivo .xlsx do MS-Excel.
  • HPSF (Horrible Property Set Format): É usado para extrair conjuntos de propriedades dos arquivos do MS-Office.
  • HWPF (Horrible formato Word Processor): Ele é usado para ler e escrever arquivos de extensão .doc do MS-Word.
  • XWPF (XML formato Word Processor): Ele é usado para ler e escrever arquivos de extensão docx do MS-Word.
  • HSLF (Horrible Deslize layout Format): É usado para ler, criar e editar apresentações de PowerPoint.
  • HDGF (Horrible formato de diagrama): Contém classes e métodos para arquivos binários MS-Visio.
  • HPBF (Horrible formato do Publisher): Ele é usado para ler e gravar arquivos MS-Publisher.
Instalação Apache POI Biblioteca
Baixe a versão mais recente do Apache POI a partir http://poi.apache.org/download.html e descompacte seu conteúdo para uma pasta de onde as bibliotecas necessárias podem ser ligados ao seu programa Java. 

E depois adicionar os jars ao projeto.

1) Clique com o botão direito do mouse em cima do projeto
2) Vá em propriedades
3) Biibliotecas
4) Adicionar Jar/Pasta