Skip to content

Tutorial Python Excel: O Guia Definitivo

    Aprenda como ler e importar arquivos do Excel em Python, escrever dados nesses planilhas e encontrar os melhores pacotes para fazer isso.

    Introdução ao Excel em Python

    Muitas pessoas usam o Excel para trabalhar com dados, desde operações básicas até análises avançadas, como regressão e agrupamento.

    Apesar das vantagens, o Excel tem limitações, como dificuldade com grandes volumes de dados e tarefas repetitivas demoradas.

    93% dos usuários do Excel acham demorado combinar planilhas, gastando 12 horas por mês nessa tarefa.

    Automatizar tarefas do Excel com Python simplifica a consolidação de planilhas, limpeza de dados e modelagem preditiva, economizando tempo e reduzindo a intervenção manual.

    Com a biblioteca Openpyxl, você pode ler/escrever no Excel com Python, realizar operações e criar gráficos, além de formatar células e estilos.

    Introdução ao Openpyxl

    Openpyxl é uma biblioteca Python para ler/escrever em arquivos do Excel, fazer formatações e criar gráficos sem abrir o Excel.

    Openpyxl também possibilita analisar várias planilhas de uma vez, economizando tempo e facilitando a automação de tarefas.

    Como Instalar o Openpyxl

    Para instalar o Openpyxl, basta abrir o prompt de comando ou o PowerShell e digitar o seguinte comando:

    $pip install openpyxl

    Você deverá ver a seguinte mensagem indicando que o pacote foi instalado com sucesso:

    Lendo Arquivos do Excel em Python com Openpyxl

    Neste tutorial, utilizaremos um conjunto de dados de Vendas de Jogos de Vídeo da Kaggle, que já foi preparado para uso. Siga o processo abaixo para importá-lo para o Python.

    Carregando a Pasta de Trabalho

    Após o download do conjunto de dados, importe a biblioteca Openpyxl e carregue a pasta de trabalho para o Python:

    import openpyxl
    
    wb = openpyxl.load_workbook('videogamesales.xlsx')

    Agora que o arquivo do Excel foi carregado como um objeto Python, você precisa dizer à biblioteca qual planilha acessar. Existem duas maneiras de fazer isso:

    O primeiro método é simplesmente chamar a planilha ativa, que é a primeira planilha na pasta de trabalho, usando a seguinte linha de código:

    ws = wb.active

    Alternativamente, se você conhece o nome da planilha, também pode acessá-la pelo nome. Neste exemplo, usaremos a planilha “vgsales”:

    ws = wb['vgsales']

    Agora, podemos contar o número de linhas e colunas nesta planilha:

    print('Número total de linhas: ' + str(ws.max_row) + '. E número total de colunas: ' + str(ws.max_column))

    O código acima deve retornar a seguinte saída:

    Número total de linhas: 16328. E número total de colunas: 10

    Agora que sabemos as dimensões da planilha, podemos aprender como ler dados dela.

    Lendo Dados de uma Célula

    Para obter dados de uma célula específica com o Openpyxl, você pode acessar o valor da célula da seguinte maneira:

    print('O valor na célula A1 é: ' + str(ws['A1'].value))

    Você deve obter a seguinte saída:

    O valor na célula A1 é: Rank

    Lendo Dados de Múltiplas Células

    Agora que sabemos como ler dados de uma célula específica, como imprimir todos os valores de uma determinada linha da planilha?

    Para fazer isso, você pode criar um loop simples para iterar por todos os valores em uma linha específica:

    valores = [ws.cell(row=1, column=i).value for i in range(1, ws.max_column + 1)]
    print(valores)

    O código acima imprimirá todos os valores da primeira linha:

    ['Rank', 'Name', 'Platform', 'Year', 'Genre',
    
     'Publisher', 'NA_Sales', 'EU_Sales', 'JP_Sales', 'Other_Sales']

    Você também pode imprimir todos os valores de uma coluna específica usando um loop semelhante. Por exemplo, para imprimir todos os valores da coluna “Name”:

    valores = [ws.cell(row=i, column=2).value for i in range(1, ws.max_row + 1)]
    print(valores)

    Essa abordagem funciona bem para pequenos conjuntos de dados. No entanto, se você deseja ler uma planilha inteira em uma estrutura de dados Python, como uma lista de listas, pode usar a seguinte abordagem:

    dados = []
    
    for row in ws.iter_rows(min_row=1, max_row=ws.max_row, min_col=1, max_col=ws.max_column):
        linha = [cell.value for cell in row]
        dados.append(linha)
    
    for linha in dados[:5]:  # Imprime as primeiras 5 linhas como exemplo
        print(linha)

    Este código irá imprimir as primeiras 5 linhas de dados da planilha.

    Agora que aprendemos a ler dados do Excel com Openpyxl, vamos explorar como escrever dados no Excel.

    Escrevendo em Arquivos do Excel com Openpyxl

    Escrever em arquivos do Excel usando Openpyxl é tão fácil quanto ler. Você pode simplesmente acessar as células que deseja escrever e atribuir um valor a elas. Vamos criar um exemplo simples em que escreveremos uma mensagem em uma célula:

    ws['A2'] = 'Olá, Excel!'

    Este código coloca a mensagem “Olá, Excel!” na célula A2 da planilha. Agora, se você abrir o arquivo do Excel, verá a mensagem na célula A2.

    Mas e se você deseja escrever em várias células de uma só vez? Você pode fazer isso passando uma lista de listas de valores para o método append:

    dados = [
        ['Nome', 'Idade', 'Cidade'],
        ['João', 25, 'São Paulo'],
        ['Maria', 30, 'Rio de Janeiro'],
        ['Pedro', 22, 'Belo Horizonte']
    ]
    
    for linha in dados:
        ws.append(linha)

    Este código criará uma tabela de dados com nomes, idades e cidades. Você pode expandir esta tabela com mais linhas conforme necessário.

    Criando Fórmulas no Excel com Openpyxl

    Uma das vantagens de usar o Excel é a capacidade de criar fórmulas complexas para realizar cálculos. Você pode fazer o mesmo em Python usando o Openpyxl.

    Suponha que você deseje calcular a soma das vendas na América do Norte, que estão nas colunas ‘NA_Sales’ (coluna G) e ‘Other_Sales’ (coluna I), e colocar o resultado na célula J2. Você pode fazer isso usando a seguinte fórmula:

    ws['J2'] = '=SUM(G2:I2)'

    Esta fórmula soma os valores das células G2, H2 e I2 e coloca o resultado na célula J2. Lembre-se de que você deve usar a sintaxe do Excel para as fórmulas, incluindo o sinal de igual (=) no início.

    Você também pode usar outras funções do Excel, como média, máximo, mínimo, etc., da mesma maneira.

    Trabalhando com Planilhas no Openpyxl

    Além de ler e escrever dados em células, o Openpyxl também permite trabalhar com planilhas de várias maneiras. Você pode adicionar planilhas, renomeá-las, excluir planilhas e alternar entre planilhas.

    Adicionando uma Nova Planilha

    Para adicionar uma nova planilha a um arquivo do Excel, você pode usar o seguinte código:

    nova_planilha = wb.create_sheet('Nova Planilha')

    Isso criará uma nova planilha chamada ‘Nova Planilha’ no arquivo do Excel.

    Renomeando uma Planilha

    Para renomear uma planilha existente, use o seguinte código:

    ws.title = 'Novo Nome'

    Isso renomeará a planilha atual para ‘Novo Nome’.

    Excluindo uma Planilha

    Para excluir uma planilha, use o seguinte código:

    wb.remove(ws)

    Isso removerá a planilha atual do arquivo do Excel.

    Alternando Entre Planilhas

    Para alternar entre planilhas, você pode usar o seguinte código:

    outra_planilha = wb['Outra Planilha']

    Isso fará com que a variável outra_planilha aponte para a planilha chamada ‘Outra Planilha’ no arquivo do Excel.

    Adicionando Gráficos a um Arquivo do Excel com Openpyxl

    O Openpyxl também permite adicionar gráficos a um arquivo do Excel. Você pode criar gráficos de barras, gráficos de pizza, gráficos de dispersão e outros tipos de gráficos.

    Aqui está um exemplo simples de como criar um gráfico de barras:

    from openpyxl.drawing.image import Image
    from openpyxl.chart import BarChart, Reference
    
    # Crie uma instância de gráfico de barras
    chart = BarChart()
    chart.title = "Vendas por Gênero"
    
    # Defina os dados para o gráfico de barras
    data = Reference(ws, min_col=7, min_row=2, max_col=10, max_row=11)  # Valores das vendas por gênero
    categorias = Reference(ws, min_col=6, min_row=3, max_row=11)  # Nomes dos gêneros
    
    chart.add_data(data, titles_from_data=True)
    chart.set_categories(categorias)
    
    # Adicione o gráfico à planilha
    ws.add_chart(chart, "E5")
    
    # Salve o arquivo
    wb.save('videogamesales_com_grafico.xlsx')

    Este código cria um gráfico de barras que mostra as vendas por gênero usando dados da planilha e o adiciona à planilha atual na célula E5.

    Formatando Células Usando Openpyxl

    Você também pode aplicar formatação às células, como alterar a cor da fonte, a cor de fundo, o tamanho da fonte e muito mais. Aqui está um exemplo de como alterar a cor de fundo e a cor da fonte de uma célula:

    from openpyxl.styles import Font, Fill
    
    # Acesse a célula que você deseja formatar
    c = ws['A1']
    
    # Defina a fonte
    fonte = Font(name='Arial', bold=True, color="FFFFFF")
    
    # Defina a cor de fundo
    cor_de_f
    
    undo = Fill(start_color='FF0000', end_color='FF0000', fill_type='solid')
    
    # Aplique a formatação à célula
    c.font = fonte
    c.fill = cor_de_fundo

    Este código define a fonte para Arial, negrito e cor branca, e a cor de fundo para vermelho para a célula A1.

    Existem muitas outras opções de formatação disponíveis no Openpyxl, então você pode personalizar as células conforme necessário.

    Essas são funcionalidades básicas para ler, escrever, formatar dados e trabalhar com planilhas e gráficos em arquivos do Excel usando o Openpyxl em Python. Espero que isso ajude em seus projetos com Python e Excel. Se tiver dúvidas, fique à vontade para perguntar!

    Outras Referências

    Extrair Múltiplas Tabelas de uma Planilha do Excel Usando Python

    Leave a Reply

    Your email address will not be published. Required fields are marked *