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: 2616 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 ::: Classes e Componentes ::: JTextArea

Java Swing - Como definir a cor de fundo para um JTextArea

Quantidade de visualizações: 8822 vezes
Nesta dica mostrarei como podemos aplicar uma cor de fundo a um controle área de texto, ou seja, um JTextArea do Java Swing. Para isso nós só precisamos fazer uma chamada ao seu método setBackground() e passar a cor desejada.

Veja um exemplo de como isso pode ser feito:

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

textArea = new JTextArea(10, 20);
// Define a cor de fundo
textArea.setBackground(Color.YELLOW);

Note que aqui nós temos uma variável chamada textArea, do tipo JTextArea.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios Resolvidos de Java - Verifique se as componentes de um vetor de 10 componentes inteiros lidos pelo teclado formam uma progressão aritmética

Quantidade de visualizações: 1542 vezes
Exercício Resolvido de Java - Verifique se as componentes de um vetor de 10 componentes inteiros lidos pelo teclado formam uma progressão aritmética

Pergunta/Tarefa:

Verifique se as componentes de um vetor de 10 componentes inteiros lidos pelo teclado formam uma progressão aritmética, informando se sim ou se não. Caso forme, imprima o termo inicial e a razão.

Resposta/Solução:

Para a entrada do usuário, nós vamos usar um objeto da classe Scanner. Veja a resolução comentada:

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

package arquivodecodigos;

import java.util.Scanner;

public class Estudos{
  public static void main(String[] args){
    // vamos usar a classe Scanner para leitura
    Scanner entrada = new Scanner(System.in);

    // declara e constrói um vetor de 10 inteiros
    int valores[] = new int[10];
    
    // vamos ler os valores dos elementos do vetor
    for(int i = 0; i < valores.length; i++){
      System.out.print("Informe o valor: ");
      valores[i] = Integer.parseInt(entrada.nextLine());
    }
    
    // já temos o vetor. Agora vamos verificar se temos
    // uma progressão geométrica
    boolean progressao = true;
    // vamos obter a razão
    int razao = valores[1] / (valores[0]);
    
    // vamos varrer os elementos do vetor e verificar se todos
    // possuem a mesma razão
    for(int i = 1; i < valores.length; i++){
      if((valores[i] / (valores[i - 1])) != razao){
        progressao = false;
        break;
      }
    }
    
    if(progressao){
      System.out.println("Formam uma progressão geométrica.");
      System.out.println("A razão é: " + razao);
      System.out.println("O primeiro termo é: " + valores[0]);
    }
    else{
      System.out.println("Não formam uma progressão geométrica.");
    }
  }
}

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

Informe o valor: 1
Informe o valor: 2
Informe o valor: 4
Informe o valor: 8
Informe o valor: 16
Informe o valor: 32
Informe o valor: 64
Informe o valor: 128
Informe o valor: 256
Informe o valor: 512
Formam uma progressão geométrica.
A razão é: 2
O primeiro termo é: 1


Java ::: Classes e Componentes ::: JTable

Java Swing - Como excluir linhas de uma JTable em tempo de execução usando o método removeRow() da classe DefaultTableModel

Quantidade de visualizações: 15696 vezes
Nesta dica mostrarei como é possível excluir uma determinada linha de uma JTable usando o método removeRow() da classe DefaultTableModel. Veja que mostro também como inserir novas linhas na JTable usando o método insertRow().

Veja o resultado obtido na imagem abaixo:



E agora o código Java Swing completo:

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

package arquivodecodigos;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
 
public class Estudos extends JFrame{
  public Estudos(){
    super("Exemplo de uma tabela simples");
         
    final DefaultTableModel modelo = new DefaultTableModel();
     
    // constrói a tabela
    JTable tabela = new JTable(modelo);
     
    // Cria duas colunas
    modelo.addColumn("Nome");
    modelo.addColumn("Idade");
     
    JButton btn = new JButton("Inserir Linhas");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          String nome = JOptionPane.showInputDialog(null, "Informe o nome:");
          String idade = JOptionPane.showInputDialog(null, "Informe a idade:");
          int pos = Integer.parseInt(JOptionPane.showInputDialog(null, 
             "Informe a posição da nova linha:"));
           
          // testa se a posição é válida
          if(pos > (modelo.getRowCount() - 1))
            pos = 0;
           
          // Insere uma linha na posição especificada
          modelo.insertRow(pos, new Object[]{nome, idade});
        }
      } 
    );
     
    JButton btn2 = new JButton("Excluir Linhas");
    btn2.addActionListener(
      new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e){
          int pos = Integer.parseInt(JOptionPane.showInputDialog(null, 
            "Informe a posição da linha a ser excluída:"));
           
          // testa se a posição é válida
          if(pos < modelo.getRowCount())
            // Exclui a linha na posição especificada
            modelo.removeRow(pos);
        }
      } 
    );  
     
    tabela.setPreferredScrollableViewportSize(new Dimension(350, 50));
     
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
             
    JScrollPane scrollPane = new JScrollPane(tabela);
    c.add(scrollPane);
    c.add(btn);
    c.add(btn2);
         
    setSize(400, 300);
    setVisible(true);
  }
     
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



Vamos testar seus conhecimentos em

Dimensionamento de lajes maciças à flexão

As lajes maciças são armadas em cruz, quando apresentam a relação entre o maior e o menor vão inferior a 2. Nessas situações, a laje pode ser dimensionada a partir de valores preestabelecidos em tabelas como a de Marcus.

Considere a laje maciça armada em cruz apresentada na figura a seguir:



Dados:

Peso específico do concreto = 25kN/m3
Carga do contrapiso + revestimento = 2,00kN/m2
Carga acidental = 2,50kN/m2
Altura da laje (h) = 10cm
Altura útil (d) = 6cm
Cobrimento nominal = 2,5cm
fcd = fck / 1,4 (considerar concreto de 20MPa)
fyd = fyk / 1,15 (considerar aço CA-50)

Assinale a alternativa correta:

A) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 11cm na laje em questão.

B) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 12cm na laje.

C) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 13cm na laje.

D) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 14cm na laje.

E) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 15cm na laje.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Responsabilidade civil no código de defesa do consumidor

O fornecedor e o prestador de serviço estarão livres do dever de indenizar caso não haja dano reparável e ficar comprovado que:

A) a culpa foi exclusiva do consumidor ou de terceiro.

B) a culpa foi do fornecedor.

C) ninguém teve culpa.

D) todos tiveram culpa.

E) não importa quem teve culpa.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Instalações prediais de águas pluviais

Normalmente, o projeto de calha é feito em duas etapas: primeiramente, estima-se o escoamento superficial a partir do método racional e, em sequência, consulta-se uma calha com capacidade hidráulica satisfatória. Em alguns casos, o projetista deve estar apto a calcular a seção necessária, fazendo, assim, a aplicação dos conhecimentos obtidos.

Uma calha em aço galvanizado com coeficiente de rugosidade n = 0,011 deverá ser instalada com declividade 0,5%. Sabendo que a seção adotada é retangular com base de 10cm e altura de 20cm, qual a capacidade hidráulica dessa calha em L/s?

A) 132,45L/s.

B) 165,25L/s.

C) 150,40L/s.

D) 180,61L/s.

E) 194,27L/s.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual o resultado da execução do seguinte código Python?

valores = [4, 1, 8, 3, 7, 9]
for i in range(0, len(valores)):
  if i % 2 == 0:
    print("{0}  ".format(valores[i]), end="")

A) Erro NameError: name 'end' is not defined na linha 4

B) 4 1 8

C) Erro SyntaxError: invalid syntax na linha 3

D) 1 3 9

E) 4 8 7
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Formas: Confecção e colocação

O concreto deve estar curado e liberado para a remoção das formas segundo recomendações técnicas. Quando não se utiliza concreto especial ou aditivo acelerador de pega, para vigas de pequeno vão, qual é o prazo mínimo para a retirada das formas inferiores, com a manutenção das principais escoras?

A) Cinco dias.

B) Sete dias.

C) Dez dias.

D) Quatorze dias.

E) Vinte e um dias.
Verificar Resposta Estudar Cards Todas as Questões

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: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



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