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.

2 comentários:

  1. Melissa acabei de ver seu comentario de uns 2 anos atras em um blog, queria conversar com voce, por face sei la, preciso de uma ajuda por favor

    ResponderExcluir
  2. Opa pode falar. Add no skype se quiser. melissinhalobo

    ResponderExcluir