Pular para o conteúdo principal

Tutorial do Python Excel: O guia definitivo

Saiba como ler e importar arquivos do Excel em Python, gravar dados nessas planilhas e encontrar os melhores pacotes para fazer isso.
Actualizado 18 de jul. de 2024  · 30 min de leitura

Introdução ao Excel em Python

Quer você seja estudante ou profissional, é provável que já tenha usado o Excel para trabalhar com dados e processar números.

De fato, uma pesquisa realizada em 2019 constatou que cerca de 54% das empresas usam o Excel para realizar operações aritméticas, analisar dados, criar visualizações e gerar relatórios. Você também pode executar tarefas de modelagem preditiva, como regressão e agrupamento, usando o Excel.

No entanto, apesar dos pontos fortes indiscutíveis do Excel, a ferramenta tem seu próprio conjunto de desvantagens, tornando-a, às vezes, ineficiente ao executar tarefas específicas que envolvem grandes conjuntos de dados.

Uma limitação do Excel é sua incapacidade de lidar com grandes quantidades de dados. Você pode ter sérios problemas de desempenho ao tentar executar operações complexas em muitas entradas de dados no Excel, especialmente se suas fórmulas e macros não estiverem otimizadas para desempenho.

O Excel também pode consumir muito tempo se você precisar executar tarefas repetitivas. Por exemplo, se você precisar replicar uma análise em vários arquivos do Excel toda semana, terá que abri-los manualmente e copiar e colar as mesmas fórmulas várias vezes.

Pesquisas mostram que 93% dos usuários do Excel consideram demorada a consolidação de planilhas e que os funcionários gastam aproximadamente 12 horas por mês apenas combinando diferentes arquivos do Excel.

Essas desvantagens podem ser resolvidas automatizando os fluxos de trabalho do Excel com Python. Tarefas como consolidação de planilhas, limpeza de dados e modelagem preditiva podem ser realizadas em minutos usando um script Python simples que grava em um arquivo do Excel.

Os usuários do Excel também podem criar um agendador em Python que executa o script automaticamente em diferentes intervalos de tempo, reduzindo drasticamente a quantidade de intervenção humana necessária para executar a mesma tarefa repetidamente.

Neste artigo, mostraremos a você como fazer isso:

  • Use uma biblioteca chamada Openpyxl para ler e gravar arquivos do Excel usando Python
  • Criar operações aritméticas e fórmulas do Excel em Python
  • Manipular planilhas do Excel usando Python
  • Crie visualizações em Python e salve-as em um arquivo do Excel
  • Formatar cores e estilos de células do Excel usando Python

Introdução ao Openpyxl

O Openpyxl é uma biblioteca Python que permite aos usuários ler arquivos do Excel e gravar neles. 

Essa estrutura pode ajudar você a escrever funções, formatar planilhas, criar relatórios e criar gráficos diretamente no Python sem precisar abrir um aplicativo do Excel.

Além disso, o Openpyxl permite que os usuários iterem pelas planilhas e realizem a mesma análise em vários conjuntos de dados ao mesmo tempo. 

Isso aumenta a eficiência e permite a automação dos fluxos de trabalho do Excel, pois os usuários só precisam realizar a análise em uma planilha e podem replicá-la quantas vezes forem necessárias.

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:

Sucesso na instalação do Openpyxl

Lendo arquivos do Excel em Python com o Openpyxl

Neste tutorial, usaremos o conjunto de dados de vendas de videogames da Kaggle. Esse conjunto de dados foi pré-processado por nossa equipe para fins deste tutorial, e você pode fazer o download da versão modificada neste link. Você pode importar o Excel para o Python seguindo o processo abaixo:

  1. Carregando a pasta de trabalho

    Depois de fazer o download do conjunto de dados, importe a biblioteca Openpyxl e carregue a pasta de trabalho no Python:

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

    Agora que o arquivo do Excel está carregado como um objeto Python, você precisa informar à biblioteca qual planilha deve ser acessada. Há duas maneiras de fazer isso:

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

    ws = wb.active

    Como alternativa, se você souber o nome da planilha, também poderá acessá-la pelo nome. Usaremos a planilha "vgsales" nesta seção do tutorial:

    ws = wb['vgsales']

    Agora, vamos contar o número de linhas e colunas dessa planilha:

    print('Total number of rows: '+str(ws.max_row)+'. And total number of columns: '+str(ws.max_column))

    O código acima deve gerar o seguinte resultado:

    Total number of rows: 16328. And total number of columns: 10

    Agora que você já conhece as dimensões da planilha, vamos prosseguir e aprender a ler os dados da pasta de trabalho. 

  2. Leitura de dados de uma célula

    Aqui está uma captura de tela da planilha ativa com a qual trabalharemos nesta seção:

    Dados de vendas de videogames

    Para recuperar dados de uma célula específica com o Openpyxl, você pode digitar o valor da célula desta forma:

    print('The value in cell A1 is: '+ws['A1'].value)

    Você deve obter o seguinte resultado:

    The value in cell A1 is: Rank
  3. Leitura de dados de várias células

    Agora que sabemos como ler dados de uma célula específica, e se quiséssemos imprimir todos os valores das células em uma determinada linha da planilha?

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

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

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

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

    Em seguida, vamos tentar imprimir várias linhas em uma coluna específica.

    Criaremos um loop for para renderizar as dez primeiras linhas da coluna "Name" como uma lista. Você deve obter os nomes destacados na caixa vermelha abaixo:

    Coluna de nomes de videogames

    data=[ws.cell(row=i,column=2).value for i in range(2,12)]
    print(data)

    O código acima gerará o seguinte resultado:

    ['Wii Sports', 'Super Mario Bros.', 'Mario Kart Wii', 'Wii Sports Resort', 'Pokemon Red/Pokemon Blue', 'Tetris', 'New Super Mario Bros.', 'Wii Play', 'New Super Mario Bros. Wii', 'Duck Hunt']

    Por fim, vamos imprimir as dez primeiras linhas em um intervalo de colunas na planilha:

    # reading data from a range of cells (from column 1 to 6)
    
    my_list = list()
    
    for value in ws.iter_rows(
        min_row=1, max_row=11, min_col=1, max_col=6, 
        values_only=True):
        my_list.append(value)
        
    for ele1,ele2,ele3,ele4,ele5,ele6 in my_list:
        (print ("{:<8}{:<35}{:<10}
                 {:<10}{:<15}{:<15}".format(ele1,ele2,ele3,ele4,ele5,ele6)))

    As primeiras dez linhas de dados nas primeiras seis colunas devem ser exibidas depois que você executar o código acima:

    classificação dos videogames

Gravação em arquivos do Excel com o Openpyxl

Agora que sabemos como acessar e ler dados de arquivos do Excel, vamos aprender a gravar neles usando o Openpyxl.

  1. Escrevendo em uma célula

    Há duas maneiras de você gravar em um arquivo com o Openpyxl.

    Primeiro, você pode acessar a célula diretamente usando sua chave:

    ws['K1'] = 'Sum of Sales'

    Uma alternativa é especificar a posição da linha e da coluna da célula na qual você gostaria de escrever:

    ws.cell(row=1, column=11, value = 'Sum of Sales')

    Sempre que gravar em um arquivo do Excel com o Openpyxl, você precisará salvar as alterações com a seguinte linha de código ou elas não serão refletidas na planilha:

    wb.save('videogamesales.xlsx')

    Se a pasta de trabalho estiver aberta quando você tentar salvá-la, ocorrerá o seguinte erro de permissão:

    Erro de permissão

    Certifique-se de fechar o arquivo do Excel antes de salvar suas alterações. Em seguida, você pode abri-la novamente para garantir que a alteração seja refletida na planilha:

    Dados de videogames com nova coluna

    Observe que uma nova coluna chamada "Soma das vendas" foi criada na célula K1.

  2. Criando uma nova coluna

    Vamos agora adicionar a soma das vendas em cada região e escrevê-la na coluna K.

    Faremos isso para os dados de vendas na primeira linha:

    row_position = 2
    col_position = 7
    
    total_sales = ((ws.cell(row=row_position, column=col_position).value)+
                   (ws.cell(row=row_position, column=col_position+1).value)+
                   (ws.cell(row=row_position, column=col_position+2).value)+
                   (ws.cell(row=row_position, column=col_position+3).value))
    
    ws.cell(row=2,column=11).value=total_sales
    wb.save('videogamesales.xlsx')

    Observe que o total de vendas foi calculado na célula K2 para o primeiro jogo da planilha:

    Soma das vendas na célula K2

    Da mesma forma, vamos criar um loop for para somar os valores de vendas em cada linha:

    row_position = 1
    
    for i in range(1, ws.max_row):
    
        row_position += 1
        NA_Sales = ws.cell(row=row_position, column=7).value
        EU_Sales = ws.cell(row=row_position, column=8).value
        JP_Sales = ws.cell(row=row_position, column=9).value
        Other_Sales = ws.cell(row=row_position, column=10).value
    
        total_sales = (NA_Sales + EU_Sales + JP_Sales + Other_Sales)
        ws.cell(row=row_position, column=11).value = total_sales
    
    wb.save("videogamesales.xlsx")

    Agora, seu arquivo do Excel deve ter uma nova coluna que reflete o total de vendas de videogames em todas as regiões:

    Soma das vendas calculada

  3. Anexar novas linhas

    Para anexar uma nova linha à pasta de trabalho, basta criar uma tupla com os valores que você gostaria de incluir e gravá-la na planilha:

    new_row = (1,'The Legend of Zelda',1986,'Action','Nintendo',3.74,0.93,1.69,0.14,6.51,6.5)
    
    ws.append(new_row)
        
    wb.save('videogamesales.xlsx')

    Você pode confirmar que esses dados foram anexados imprimindo a última linha da pasta de trabalho:

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

    A seguinte saída será gerada:

    [1, 'The Legend of Zelda', 1986, 'Action', 'Nintendo', 3.74, 0.93, 1.69, 0.14, 6.51, 6.5]
  4. Exclusão de linhas

    Para excluir a nova linha que acabamos de criar, você pode executar a seguinte linha de código:

    ws.delete_rows(ws.max_row, 1) # row number, number of rows to delete
    
    wb.save('videogamesales.xlsx')

    O primeiro argumento da função delete_rows() é o número da linha que você deseja excluir. O segundo argumento indica o número de linhas que devem ser excluídas.

Criando fórmulas do Excel com o Openpyxl

Você pode usar o Openpyxl para escrever fórmulas exatamente como faria no Excel. Aqui estão alguns exemplos de funções básicas que você pode criar usando o Openpyxl:

  1. MÉDIA

    Vamos criar uma nova coluna chamada "Average Sales" para calcular o total médio de vendas de videogames em todos os mercados:

    ws['P1'] = 'Average Sales'
    ws['P2'] = '= AVERAGE(K2:K16220)'
    
    wb.save('videogamesales.xlsx')

    A média de vendas em todos os mercados é de aproximadamente 0,19. Isso será impresso na célula P2 de sua planilha.

  2. PAÍS

    A função "COUNTA" do Excel conta as células que são preenchidas em um intervalo específico. Vamos usá-lo para encontrar o número de registros entre E2 e E16220:

    ws['Q1'] = "Number of Populated Cells" 
    ws['Q2'] = '=COUNTA(E2:E16220)'
    
    wb.save('videogamesales.xlsx')

    Há 16.219 registros nesse intervalo que contêm informações.

  3. CONTRIBUIÇÃO

    COUNTIF é uma função do Excel comumente usada para contar o número de células que atendem a uma condição específica. Vamos usá-lo para contar o número de jogos nesse conjunto de dados com o gênero "Esportes":

    ws['R1'] = 'Number of Rows with Sports Genre'
    ws['R2'] = '=COUNTIF(E2:E16220, "Sports")'
    
    wb.save('videogamesales.xlsx')

    Há 2.296 jogos esportivos no conjunto de dados.

  4. SUMIF

    Agora, vamos descobrir a "Soma de vendas" total gerada pelos jogos esportivos usando a função SUMIF:

    ws['S1'] = 'Total Sports Sales'
    ws['S2'] = '=SUMIF(E2:E16220, "Sports",K2:K16220)'
     
    wb.save('videogamesales.xlsx')

    O número total de vendas geradas por jogos esportivos é 454.

  5. TETO

    A função CEILING do Excel arredonda um número até o múltiplo especificado mais próximo. Vamos arredondar o valor total das vendas geradas pelos jogos esportivos usando essa função:

    ws['T1'] = 'Rounded Sum of Sports Sales'
    ws['T2'] = '=CEILING(S2,25)'
    
    wb.save('videogamesales.xlsx')

    Arredondamos o total de vendas geradas por jogos esportivos para o múltiplo mais próximo de 25, o que gera um resultado de 475.

    Os trechos de código acima devem gerar a seguinte saída em sua planilha do Excel (das células P1 a T2):

    Linha média de vendas

    Você pode consultar nossa Folha de dicas básicas do Excel para saber mais sobre fórmulas, operadores, funções matemáticas e computação condicional do Excel.

Trabalhando com planilhas no Openpyxl

Agora que sabemos como acessar planilhas e gravar nelas, vamos aprender a manipular, remover e duplicá-las usando o Openpyxl.

  1. Como alterar nomes de planilhas

    Primeiro, vamos imprimir o nome da planilha ativa com a qual estamos trabalhando no momento usando o atributo title do Openpyxl:

    print(ws.title)

    Você verá o seguinte resultado:

    vgsales

    Agora, vamos renomear essa planilha usando as seguintes linhas de código:

    ws.title ='Video Game Sales Data'
    
    wb.save('videogamesales.xlsx')

    O nome da planilha ativa agora deve ser alterado para "Video Game Sales Data".

  2. Criando uma nova planilha

    Execute a seguinte linha de código para listar todas as planilhas da pasta de trabalho:

    print(wb.sheetnames)

    Você verá uma matriz listando os nomes de todas as planilhas do arquivo:

    ['Video Game Sales Data', 'Total Sales by Genre', 'Breakdown of Sales by Genre', 'Breakdown of Sales by Year']

    Agora, vamos criar uma nova planilha vazia:

    wb.create_sheet('Empty Sheet') # create an empty sheet
    print(wb.sheetnames) # print sheet names again
    
    wb.save('videogamesales.xlsx')

    Observe que uma nova planilha chamada "Empty Sheet" foi criada:

    ['Video Game Sales Data', 'Total Sales by Genre', 'Breakdown of Sales by Genre', 'Breakdown of Sales by Year', ‘Empty Sheet’]
  3. Exclusão de uma planilha

    Para excluir uma planilha usando o Openpyxl, basta usar o atributo remove e imprimir todos os nomes de planilhas novamente para confirmar que a planilha foi excluída:

    wb.remove(wb['Empty Sheet'])
    print(wb.sheetnames)
    
    wb.save('videogamesales.xlsx')

    Observe que a planilha "Empty Sheet" não está mais disponível:

    ['Video Game Sales Data', 'Total Sales by Genre', 'Breakdown of Sales by Genre', 'Breakdown of Sales by Year']
  4. Duplicação de uma planilha

    Por fim, execute esta linha de código para criar uma cópia de uma planilha existente:

    wb.copy_worksheet(wb['Video Game Sales Data'])
    wb.save('vgsales_2.xlsx')

    Imprimindo todos os nomes das planilhas novamente, obtemos o seguinte resultado:

    ['Video Game Sales Data', 'Total Sales by Genre', 'Breakdown of Sales by Genre', 'Breakdown of Sales by Year', 'Video Game Sales Data Copy']

Como adicionar gráficos a um arquivo do Excel com o Openpyxl

O Excel é geralmente visto como a ferramenta ideal para criar visualizações e resumir conjuntos de dados. Nesta seção, aprenderemos a criar gráficos no Excel diretamente do Python usando o Openpyxl.

  1. Gráfico de barras

    Vamos primeiro criar um gráfico de barras simples exibindo o total de vendas de videogames por gênero. Para isso, usaremos a planilha "Total Sales by Genre" (Vendas totais por gênero):

    Planilha para gráfico de barras

    Essa planilha contém uma tabela dinâmica na qual a soma das vendas foi agregada por gênero, conforme mostrado na captura de tela acima.

    Vamos acessar essa planilha antes de começarmos a criar o gráfico de barras:

    ws = wb['Total Sales by Genre'] # access the required worksheet

    Agora, precisamos informar ao Openpyxl os valores e as categorias que gostaríamos de plotar.

    Valores:

    Os valores incluem os dados da "Soma de vendas" que queremos plotar. Precisamos informar ao Openpyxl onde encontrar esses dados no arquivo do Excel, incluindo o intervalo em que os valores começam e terminam.

    Quatro parâmetros no Openpyxl permitem que você especifique onde os valores estão localizados:

    • Min_column: A coluna mínima que contém dados
    • Max_column: A coluna máxima que contém dados
    • Linha mínima: A linha mínima que contém dados
    • Max_row: A linha máxima que contém dados

    Aqui está uma imagem que mostra como você pode definir esses parâmetros:

    Quatro parâmetros para definir valores

    Observe que a linha mínima é a primeira linha e não a segunda. Isso ocorre porque o Openpyxl começa a contar a partir da linha que contém um valor numérico.

    # Values for plotting
    
    from openpyxl.chart import Reference
    
    values = Reference(ws,         # worksheet object   
                       min_col=2,  # minimum column where your values begin
                       max_col=2,  # maximum column where your values end
                       min_row=1,  # minimum row you’d like to plot from
                       max_row=13) # maximum row you’d like to plot from

    Categorias

    Agora, precisamos definir os mesmos parâmetros para as categorias em nosso gráfico de barras:

    Parâmetros para categorias de gráficos de barras

    Aqui está o código que você pode usar para definir parâmetros para as categorias do gráfico:

    cats = Reference(ws, 
                     min_col=1, 
                     max_col=1, 
                     min_row=2, 
                     max_row=13)

    Criando o gráfico de barras

    Agora, podemos criar o objeto de gráfico de barras e incluir nossos valores e categorias usando as seguintes linhas de código:

    from openpyxl.chart import BarChart
    
    chart = BarChart()
    chart.add_data(values, titles_from_data=True)
    chart.set_categories(cats)

    Definir títulos de gráficos

    Por fim, você pode definir os títulos do gráfico e informar ao Openpyxl onde deseja criá-lo na planilha do Excel:

    # set the title of the chart
    chart.title = "Total Sales"
    
    # set the title of the x-axis
    chart.x_axis.title = "Genre"
    
    # set the title of the y-axis
    chart.y_axis.title = "Total Sales by Genre"
    
    # the top-left corner of the chart
    # is anchored to cell F2 .
    ws.add_chart(chart,"D2")
    
    # save the file 
    wb.save("videogamesales.xlsx")

    Em seguida, você pode abrir o arquivo do Excel e navegar até a planilha "Total Sales by Genre" (Vendas totais por gênero). Você deve notar a exibição de um gráfico parecido com este:

    Total de vendas por gênero

  2. Gráfico de barras agrupadas

    Agora, vamos criar um gráfico de barras agrupadas exibindo o total de vendas por gênero e região. Você pode encontrar os dados para esse gráfico na planilha "Breakdown of Sales by Genre":

    Tabela para gráfico de barras agrupadas

    Da mesma forma que criamos o gráfico de barras, precisamos definir o intervalo para valores e categorias:

    Definição de valores e categorias para o gráfico de barras agrupadas

    Agora podemos acessar a planilha e escrever isso no código:

    ### Creating a Grouped Bar Chart with Openpyxl
    
    ws = wb['Breakdown of Sales by Genre'] # access worksheet
    
    # Data for plotting
    
    values = Reference(ws,
                       min_col=2,
                       max_col=5,
                       min_row=1,
                       max_row=13)
    
    cats = Reference(ws, min_col=1, 
                         max_col=1, 
                         min_row=2, 
                         max_row=13)

    Agora podemos criar o objeto de gráfico de barras, incluir os valores e as categorias nele e definir os parâmetros de título exatamente como fizemos anteriormente:

    # Create object of BarChart class
    
    chart = BarChart()
    chart.add_data(values, titles_from_data=True)
    chart.set_categories(cats)
    
    # set the title of the chart
    chart.title = "Sales Breakdown"
    
    # set the title of the x-axis
    chart.x_axis.title = "Genre"
    
    # set the title of the y-axis
    chart.y_axis.title = "Breakdown of Sales by Genre"
    
    # the top-left corner of the chart is anchored to cell H2.
    ws.add_chart(chart,"H2")
    
    # save the file 
    wb.save("videogamesales.xlsx")

    Quando você abrir a planilha, deverá aparecer um gráfico de barras agrupadas parecido com este:

    Saída de gráfico de barras agrupadas

  3. Gráfico de linhas empilhadas

    Por fim, criaremos um gráfico de linhas empilhadas usando os dados da guia "Breakdown of Sales by Year". Essa planilha contém dados de vendas de videogames divididos por ano e região:

    Soma dos dados de vendas

    Vamos definir o intervalo para os valores e as categorias desse gráfico:

    Valores e categorias para gráfico de linhas empilhadas

    Agora podemos escrever esses valores mínimos e máximos no código:

    # Data for plotting
    
    values = Reference(ws,
                       min_col=2,
                       max_col=6,
                       min_row=1,
                       max_row=40)
    
    cats = Reference(ws, min_col=1, max_col=1, min_row=2, max_row=40)

    Por fim, vamos criar o objeto de gráfico de linhas e definir o título, o eixo x e o eixo y do gráfico:

    # Create object of LineChart class
    
    from openpyxl.chart import LineChart
    
    chart = LineChart()
    chart.add_data(values, titles_from_data=True)
    chart.set_categories(cats)
    
    # set the title of the chart
    chart.title = "Total Sales"
    
    # set the title of the x-axis
    chart.x_axis.title = "Year"
    
    # set the title of the y-axis
    chart.y_axis.title = "Total Sales by Year"
    
    # the top-left corner of the chart is anchored to cell H2 
    ws.add_chart(chart,"H2")
    
    # save the file 
    wb.save("videogamesales.xlsx")

    Um gráfico de linhas empilhadas parecido com este deve aparecer na planilha:

    Gráfico de linhas empilhadas

Formatação de células usando o Openpyxl

O Openpyxl permite que os usuários estilizem células em pastas de trabalho do Excel. Você pode deixar sua planilha mais bonita alterando o tamanho das fontes, as cores de fundo e as bordas das células diretamente no Python.

Aqui estão algumas maneiras de personalizar sua planilha Python Excel usando o Openpyxl:

  1. Alteração de tamanhos e estilos de fonte

    Vamos aumentar o tamanho da fonte na célula A1 e colocar o texto em negrito usando as seguintes linhas de código:

    from openpyxl.styles import Font
    
    ws = wb['Video Game Sales Data']
    ws['A1'].font = Font(bold=True, size=12)
    
    wb.save('videogamesales.xlsx')

    Observe que o texto na célula A1 agora está um pouco maior e em negrito:

    dados com fonte grande

    Agora, e se você quiser alterar o tamanho e o estilo da fonte de todos os cabeçalhos de coluna na primeira linha?

    Para fazer isso, podemos usar o mesmo código e simplesmente criar um loop for para iterar por todas as colunas na primeira linha:

    for cell in ws["1:1"]: 
        cell.font = Font(bold=True, size=12)
    
    wb.save('videogamesales.xlsx')

    Quando iteramos através de ["1:1"], estamos informando ao Openpyxl as linhas inicial e final para percorrer. Se quiséssemos percorrer as dez primeiras linhas, por exemplo, especificaríamos ["1:10"] em vez disso.

    Você pode abrir a planilha do Excel para verificar se as alterações foram refletidas:

    dados de fontes menores

  2. Alteração da cor da fonte

    Você pode alterar as cores das fontes no Openpyxl usando códigos hexadecimais:

    from openpyxl.styles import colors
    
    ws['A1'].font = Font(color = 'FF0000',bold=True, size=12) ## red
    ws['A2'].font = Font(color = '0000FF') ## blue
    
    wb.save('videogamesales.xlsx')

    Depois de salvar a pasta de trabalho e abri-la novamente, as cores das fontes nas células A1 e A2 devem ter mudado:

    change font color

  3. Alteração da cor de fundo da célula

    Para alterar a cor de fundo de uma célula, você pode usar o módulo PatternFill do Openpyxl:

    ## changing background color of a cell
    
    from openpyxl.styles import PatternFill
    
    ws["A1"].fill = PatternFill('solid', start_color="38e3ff") # light blue background color
    
    wb.save('videogamesales.xlsx')

    A seguinte alteração deve ser refletida em sua planilha:

    mudança de cor da célula

  4. Adicionando bordas de células

    Para adicionar uma borda de célula usando o Openpyxl, execute as seguintes linhas de código:

    ## cell borders
    
    from openpyxl.styles import Border, Side
    
    my_border = Side(border_style="thin", color="000000")
    
    ws["A1"].border = Border(
        top=my_border, left=my_border, right=my_border, bottom=my_border
    )
    
    wb.save("videogamesales.xlsx")

    Você deverá ver uma borda semelhante a esta aparecer na célula A1:

    alterar a cor da célula

  5. Formatação condicional

    A formatação condicional é o processo de destacar valores específicos em um arquivo do Excel com base em um conjunto de condições. Ele permite que os usuários visualizem os dados com mais facilidade e compreendam melhor os valores em suas planilhas.

    Vamos usar o Openpyxl para destacar em verde todos os valores de vendas de videogames que são maiores ou iguais a 8:

    from openpyxl.formatting.rule import CellIsRule
    
    
    fill = PatternFill(
        start_color='90EE90',
        end_color='90EE90',fill_type='solid') # specify background color
    
    ws.conditional_formatting.add(
        'G2:K16594', CellIsRule(operator='greaterThan', formula=[8], fill=fill)) # include formatting rule
    
    wb.save('videogamesales.xlsx')

    No primeiro bloco de código, especificamos a cor de fundo das células que gostaríamos de formatar. Nesse caso, a cor é verde-claro.

    Em seguida, criamos uma regra de formatação condicional informando que qualquer valor maior que 8 deve ser destacado com a cor de preenchimento que especificamos. Também indicamos o intervalo de células no qual gostaríamos de aplicar essa condição.

    Depois de executar o código acima, todos os valores de vendas acima de 8 devem ser destacados da seguinte forma:

    formatado condicional

Trabalhando com o Excel em Python: Próximas etapas

Cobrimos uma grande quantidade de assuntos neste tutorial, desde o básico do uso da biblioteca Openpyxl até a realização de operações mais avançadas, como a criação de gráficos e a formatação de planilhas em Python.

Por si só, o Python e o Excel são ferramentas poderosas de manipulação de dados usadas para criar modelos preditivos, produzir relatórios analíticos e realizar cálculos matemáticos.

A maior vantagem do Excel é que ele é usado por quase todo mundo. De partes interessadas não técnicas a pessoas de nível básico, funcionários de todos os níveis entendem os relatórios apresentados em uma planilha do Excel. 

O Python, por outro lado, é usado para analisar e criar modelos em grandes quantidades de dados. Ele pode ajudar as equipes a automatizar tarefas trabalhosas e melhorar a eficiência organizacional.

Quando o Excel e o Python são usados juntos, você pode economizar horas nos fluxos de trabalho de uma empresa e, ao mesmo tempo, manter uma interface com a qual todos na organização estão familiarizados.

Agora que você já sabe como o Openpyxl pode ser usado para trabalhar com planilhas do Excel, veja algumas maneiras de levar esse conhecimento recém-adquirido adiante e usá-lo para agregar valor aos seus fluxos de trabalho existentes:

  1. Prática em conjuntos de dados maiores

    O conjunto de dados que usamos acima tem apenas cerca de 16.000 linhas, enquanto o Openpyxl pode lidar com quantidades muito maiores usando os modos otimizados da biblioteca. Se o seu objetivo é realizar operações em grandes pastas de trabalho do Excel rapidamente, você pode praticar o uso do Openpyxl em seus modos otimizados de leitura e gravação.
  2. Faça um curso on-line

    Embora tenhamos abordado os fundamentos do trabalho com o Excel em Python, há muitos conceitos que estavam fora do escopo deste curso - incluindo o trabalho com várias planilhas do Excel, a criação de tabelas dinâmicas e o resumo de grandes quantidades de dados.

    Sugerimos que você faça o curso Python for Spreadsheet Users da Datacamp para preencher algumas dessas lacunas em seu conhecimento.
  3. Aprenda a automatizar os fluxos de trabalho do Excel em Python

     Conforme mencionado anteriormente nesta seção, a maior vantagem de usar bibliotecas como o Openpyxl é a capacidade de trabalhar com várias pastas de trabalho ao mesmo tempo e programar fluxos de trabalho para que não precisem ser repetidos muitas vezes.

    Você pode tentar criar uma função simples que itere por várias pastas de trabalho ao mesmo tempo e realize algumas das operações abordadas neste tutorial.
  4. Aprenda sobre diferentes bibliotecas

    Embora o Openpyxl seja uma opção para manipular arquivos do Excel com Python, há alternativas como a biblioteca Pandas, que pode ajudar você a processar o conteúdo do Excel mais rapidamente.

    Se a formatação de células ou o trabalho direto com fórmulas do Excel não for um requisito para você, o Pandas pode ser mais fácil de aprender, pois tem melhor documentação e suporte da comunidade.

    Você pode fazer nosso curso Manipulação de dados com Pandas para começar a aprender sobre a biblioteca hoje mesmo. 
Temas

Saiba mais sobre Python e planilhas

curso

Python for Spreadsheet Users

4 hr
27.4K
Use your knowledge of common spreadsheet functions and techniques to explore Python!
Ver DetalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

tutorial

Tutorial do Python pandas: O guia definitivo para iniciantes

Você está pronto para começar sua jornada com os pandas? Aqui está um guia passo a passo sobre como você pode começar.
Vidhi Chugh's photo

Vidhi Chugh

15 min

tutorial

Tutorial de execução de scripts Python no Power BI

Descubra as diferentes maneiras de usar o Python para otimizar a análise, a visualização e a modelagem de dados no Power BI.
Joleen Bothma's photo

Joleen Bothma

9 min

tutorial

Tutorial de funções Python

Um tutorial sobre funções em Python que aborda como escrever funções, como chamá-las e muito mais!
Karlijn Willems's photo

Karlijn Willems

14 min

tutorial

Tutorial de como executar scripts Python

Saiba como executar um script Python a partir da linha de comando e também como fornecer argumentos de linha de comando ao seu script.
Aditya Sharma's photo

Aditya Sharma

10 min

tutorial

Tutorial pandas read csv(): Importação de dados

A importação de dados é a primeira etapa de qualquer projeto de ciência de dados. Saiba por que os cientistas de dados atuais preferem a função read_csv() do pandas para fazer isso.
Kurtis Pykes 's photo

Kurtis Pykes

9 min

tutorial

Leitura e importação de arquivos do Excel para o R com o readxl

Neste artigo, saiba como importar arquivos do Excel para o R com a biblioteca readxl.
Vidhi Chugh's photo

Vidhi Chugh

31 min

See MoreSee More