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: 2692 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 ::: Coleções (Collections) ::: ArrayList

Como retornar o índice da última ocorrência de um elemento em uma ArrayList do Java usando a função lastIndexOf()

Quantidade de visualizações: 9220 vezes
Em algumas situações nós gostaríamos de pesquisar um valor em um ArrayList e retornar o índice de sua última aparição, para o caso desse elemento estar contido mais de uma vez na coleção. Para isso nós podemos usar o método lastIndexOf().

Se o elemento pesquisado não estiver na ArrayList, o valor -1 será retornado.

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 estudos;

import java.util.ArrayList;

public class Estudos{
  public static void main(String[] args){
    // cria uma ArrayList que conterá strings
    ArrayList<String> nomes = new ArrayList<String>();
    
    // adiciona itens na lista
    nomes.add("Carlos");
    nomes.add("Maria");
    nomes.add("Fernanda");
    nomes.add("Osmar");
    nomes.add("Maria");    
	
    // obtém o índice da última ocorrência do
    // nome "Maria"
    int indice = nomes.lastIndexOf("Maria");

    System.out.println("O último índice do nome pesquisado é: " 
      + indice); 

    System.exit(0);
  }
}

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

O último índice do nome pesquisado é: 4


Java ::: Pacote java.lang ::: String

Como retornar os caracteres de uma string como um vetor de char usando o método getChars() da classe String do Java

Quantidade de visualizações: 8204 vezes
O método getChars() da classe String pode ser usado quando queremos retornar todos ou parte dos caracteres de uma string como uma matriz de char. Veja sua assinatura:

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

public void getChars(int srcBegin, int srcEnd,
   char[] dst, int dstBegin)

O parâmetro srcBegin indica o índice do primeiro caractere a ser copiado. O parâmetro srcEnd indica o índice APÓS o último caractere a ser copiado. O parâmetro dst é uma matriz de char para a qual os caracteres serão copiados e dstBegin indica o offset (ponto inicial) da matriz a ser preenchida.

Veja um trecho de código no qual copiamos os 5 primeiros caracteres de uma string para uma matriz de char chamada letras:

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

public class Main {
  public static void main(String[] args) {
    // vamos declarar e inicializar uma string
    String frase = "Cuiabá é muito quente";

    // declara uma matriz de 5 chars
    char letras[] = new char[5];

    // vamos copiar os 5 primeiros caracteres da frase anterior
    // e guardá-los nas primeiras posições da matriz
    frase.getChars(0, 5, letras, 0);

    // vamos percorrer a matriz letras
    for (int i = 0; i < letras.length; i++) {
      System.out.print(letras[i] + "  ");
    }
  }
}

Ao executarmos este código teremos o seguinte resultado:

C u i a b

O método getChars() pode atirar uma exceção do tipo IndexOutOfBoundsException se valores inválidos forem fornecidos aos seus parâmetros.


Java ::: Fundamentos da Linguagem ::: Tipos de Dados

Java para iniciantes - Como usar o tipo de dados long da linguagem Java

Quantidade de visualizações: 14562 vezes
O tipo de dados long pode ser usado quando queremos armazenar valores inteiros na faixa -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. Veja um exemplo:

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

public class Estudos{
  static long valor = 545L; 
  
  public static void main(String args[]){
    System.out.println("O valor da variável é: "
      + valor);
    System.exit(0);
  }
}

Observe o uso do caractere "L" após o valor literal que atribuímos à variável. Isso é feito para que o compilador trate o literal como long e não como int. Você pode usar o "L" minúsculo, mas este se parece muito com o número um, o que torna seu uso pouco recomendável.

O tipo de dados long pode ser convertido (sem a necessidade de cast) para os seguintes tipos:

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

long -> float -> double

Se precisarmos converter o tipo int para os tipos char, byte, short ou int, teremos que lançar mão de uma coerção (cast). Veja:

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

byte valor2 = (byte)(valor);



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á 75 usuários muito felizes estudando em nosso site.