Você está aqui: Java ::: Java + Excel ::: Apache POI - the Java API for Microsoft Documents

Como criar um novo Workbook, uma nova planilha no Excel e inserir linhas e células usando o Apache POI

Quantidade de visualizações: 2691 vezes
Nesta dica mostrarei como usar o Apache POI a partir de uma aplicação Java console para criar um arquivo do Excel contendo um Workbook, uma planilha e algumas linhas e colunas. Se você ainda não conhece o Apache POI - the Java API for Microsoft Documents, a URL da biblioteca é https://poi.apache.org.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class Estudos{
  public static void main(String[] args) {
    // vamos criar um novo Workbook
    XSSFWorkbook workbook = new XSSFWorkbook(); 
         
    // agora criamos uma nova planilha no workbook recém-criado    
    XSSFSheet planilha = workbook.createSheet("Notas");
    
    // vamos criar um ArrayList com as informações a serem
    // inseridas na planilha
    String titulos[] = {"DISCIPLINA", "N1", "N2", "MÉDIA"};
    ArrayList<Nota> dados = new ArrayList<>();
    dados.add(new Nota("Algorítmos I", 9.2, 7.3));
    dados.add(new Nota("Lógica Matemática", 8.0, 7.8));
    dados.add(new Nota("Ética", 10.00, 8.7));
    dados.add(new Nota("Matemática", 7.9, 9.6));
    dados.add(new Nota("Português", 2.4, 3.1));
    
    int numLinha = 0; // representa o número da linha da planilha
    
    // primeiro criamos a linha com os títulos
    Row linha = planilha.createRow(numLinha);
    for(int i = 0; i < titulos.length; i++){
      // cria uma nova célula
      Cell celula = linha.createCell(i);
      celula.setCellValue((String)titulos[i]);
    }
    
    // incrementamos a linha
    numLinha++;
    
    // agora percorremos o ArrayList
    for(int i = 0; i < dados.size(); i++){
      // criamos uma nova linha
      linha = planilha.createRow(numLinha);
      
      // percorremos as informações individuais para criar
      // as células
      Nota nota = dados.get(i);
      // criamos a célula com o nome da disciplina
      Cell celula = linha.createCell(0);
      celula.setCellValue((String)nota.disciplina);
      // e agora a célula com a nota n1
      celula = linha.createCell(1);
      celula.setCellValue((double)nota.n1);
      // e agora a célula com a nota n2
      celula = linha.createCell(2);
      celula.setCellValue((double)nota.n2);
      // e agora a célula com a média
      celula = linha.createCell(3);
      celula.setCellValue((double)((nota.n1 + nota.n2) / 2));
      
      // incrementamos a linha
      numLinha++;
    } 
    
    
    // agora vamos "tentar" salvar o workbook e a nossa planilha do Excel    
    try{
      FileOutputStream out = 
        new FileOutputStream(new File("C:\\estudos_java\\teste.xlsx"));
      workbook.write(out);
      out.close();
      System.out.println("Arquivo do Excel salvo com sucesso.");
    } 
    catch (Exception e){
      System.out.println("Ops: " + e.getMessage());
    }  
  }
  
  // classe interna auxiliar
  static class Nota{
    String disciplina;
    double n1;
    double n2;
    double media;
    
    Nota(String disciplina, double n1, double n2){
      this.disciplina = disciplina;
      this.n1 = n1;
      this.n2 = n2;
    }
  }
}

Ao executar este código, verifique se a mensagem abaixo será exibida:

Arquivo do Excel salvo com sucesso.

Viu a mensagem? Então esse é um bom sinal. Vá até o diretório no qual você pediu para salvar o arquivo do Excel e abra-o. Você deverá ter um resultado parecido com o mostrado na imagem a seguir:



Este código foi testado com a versão 5.1.0 do Apache POI, Java 1.8.0_311 e Excel para Microsoft 365 (Office 365).

Link para compartilhar na Internet ou com seus amigos:

Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico

Exercícios Resolvidos de Java - Uma locadora de charretes cobra R$ 10,00 de taxa para cada 3 horas de uso destas

Quantidade de visualizações: 5957 vezes
Exercício Resolvido de Java - Uma locadora de charretes cobra R$ 10,00 de taxa para cada 3 horas de uso destas

Pergunta/Tarefa:

Uma locadora de charretes cobra R$ 10,00 de taxa para cada 3 horas de uso destas e R$ 5,00 para cada 1 hora abaixo destas 3 horas.

Faça um programa (algorítmo) Java que leia a quantidade de horas que a charrete foi usada, calcule e escreva o valor a ser pago pelo cliente.

Sua saída deverá ser parecida com:

Quantidade de horas que a charrete foi usada: 7
Valor total a ser pago: R$ 25,00
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package exercicio;

import java.text.NumberFormat;
import java.util.Scanner;

public class Exercicio {
  public static void main(String[] args) {
    // vamos fazer a leitura usando a classe Scanner
    Scanner entrada = new Scanner(System.in);
    
    // vamos ler a quantidade de horas que a charrete foi usada
    System.out.print("Quantidade de horas que a charrete foi usada: ");
    int horas = Integer.parseInt(entrada.nextLine());
    
    // vamos calcular o valor por 3 horas exatas
    int valor = horas / 3;
    
    // valor a ser pago para cada hora abaixo de 3
    int restante = horas % 3;
    
    // finalmente calculamos o valor total a ser pago
    double valor_total = (valor * 10.0) + (restante * 5);
    
    // e exibimos o resultado
    NumberFormat formato = NumberFormat.getCurrencyInstance();
    System.out.println("Valor total a ser pago: " + formato.format(valor_total));
  }
}



Java ::: Coleções (Collections) ::: ArrayList

Como escrever um método que retorna um objeto da classe ArrayList do Java

Quantidade de visualizações: 16261 vezes
Em algumas situações precisamos escrever um método Java que retorna um objeto da classe ArrayList. Esta dica mostra como isso pode ser feito:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

import java.util.*;

public class Estudos{
  public static void main(String[] args){
    // vamos obter o ArrayList do método abaixo    
    ArrayList<String> lista = obterLista();

    // vamos exibir os valores dos elementos
    for(int i = 0; i < lista.size(); i++){
      System.out.println(lista.get(i));
    }
    
    System.exit(0);
  }

  // um método que retorna um ArrayList
  public static ArrayList<String> obterLista(){
    // vamos criar um ArrayList, adicionar alguns elementos
    // e devolvê-la ao chamador do método
    ArrayList<String> nomes = new ArrayList<String>();
    nomes.add("Osmar J. Silva");    
    nomes.add("Fernanda de Castro");
    nomes.add("Marcos de Oliveira");

    return nomes;
  }
}



Java ::: Dicas & Truques ::: Data e Hora

Como adicionar ou subtrair dias de uma data e hora usando o método add() da classe Calendar do Java

Quantidade de visualizações: 13510 vezes
Este trecho de código mostra como usar o método add() da classe Calendar da linguagem Java para adicionar ou subtrair dias de uma data. Veja que este método requer o campo de calendário e um número inteiro. Para o nosso propósito, o campo de calendário pode ser DAY_OF_MONTH ou DATE. Um valor positivo adiciona dias enquanto um valor negativo subtrai.

Veja o código completo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

import java.util.*;
import java.text.*;
 
public class Estudos{ 
  public static void main(String args[]){ 
    Calendar agora = Calendar.getInstance();
     
    // formata e exibe a data e hora atual
    Format formato = new SimpleDateFormat(
      "dd/MM/yyyy - HH:mm:ss");
    System.out.println("Hoje é: " + 
      formato.format(agora.getTime()));
 
    // vamos adicionar 5 dias a esta data
    agora.add(Calendar.DAY_OF_MONTH, 5);
    // o mesmo resultado pode ser obtido com
    // agora.add(Calendar.DATE, 5);
 
    // formata e exibe o resultado
    formato = new SimpleDateFormat(
      "dd/MM/yyyy - HH:mm:ss");
    System.out.println("Daqui a 5 dias será: " +
      formato.format(agora.getTime()));
  } 
}

Ao executar este código nós teremos o seguinte resultado:

Hoje é: 19/03/2021 - 22:13:54
Daqui a 5 dias será: 24/03/2021 - 22:13:54


Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 82 usuários muito felizes estudando em nosso site.