Validação de Dados

Como Fazer a Integração de Dados no Excel com APIs Públicas

Aprenda como fazer a integração de dados de APIs públicas diretamente no Excel usando Power Query, VBA e conectores nativos. Confira este tutorial completo com exemplos práticos, tabelas de referência e conceitos fundamentais para automatizar a importação de dados externos.

A integração de dados de APIs (Application Programming Interface) públicas com o Microsoft Excel representa uma das formas mais eficientes de automatizar a coleta e atualização de informações em planilhas. Esta prática permite que profissionais acessem dados em tempo real de diversas fontes externas, como cotações de moedas, informações meteorológicas, dados de redes sociais, estatísticas econômicas e muito mais, diretamente em suas planilhas.

O Excel oferece múltiplas abordagens para essa integração, desde o uso do Power Query (Get Data) até soluções mais avançadas com VBA (Visual Basic for Applications). Este tutorial apresentará métodos práticos e acessíveis para implementar essas integrações, independentemente do seu nível de experiência técnica.

Conceitos Fundamentais: Integração de Dados

O que são APIs?

APIs são conjuntos de regras e protocolos que permitem a comunicação entre diferentes aplicações. No contexto do Excel, utilizamos APIs para buscar dados de serviços externos e importá-los diretamente para nossas planilhas.

Tipos de APIs Relevantes para Excel

Tipo de APIDescriçãoExemplos
REST APIsMais comum, usa HTTP para transferir dadosCoinGecko, OpenWeatherMap
GraphQL APIsPermite consultas mais específicasGitHub API, Facebook Graph
SOAP APIsProtocolo mais antigo, baseado em XMLAlguns serviços bancários
Webhook APIsRecebem dados automaticamenteZapier, IFTTT

Formatos de Dados Comuns: Para Integração de Dados

FormatoDescriçãoUso no Excel
JSONJavaScript Object NotationFormato mais comum, facilmente parseável
XMLeXtensible Markup LanguageSuportado nativamente pelo Excel
CSVComma Separated ValuesImportação direta como tabela
HTMLHyperText Markup LanguageExtração de tabelas web

Método 1: Usando Power Query (Get Data)

Configuração Básica

Este é nosso primeiro exemplo para fazer a Integração de Dados no Excel através de APIs públicas. O Power Query é a ferramenta nativa do Excel para importação e transformação de dados. Para acessá-lo:

  1. Excel 2016/2019/365: Guia "Dados" → "Obter Dados" → "De Outras Fontes" → "Da Web"
  2. Excel 2013: Instalar o suplemento Power Query

Para instalar o Power Query no Excel, siga estas etapas: 

instalar o Power Query no Excel
  1. 1. Verifique se o Power Query já está instalado:No Excel 2013 e posteriores, o Power Query está integrado de forma nativa. Em versões anteriores (como o 2010), você pode precisar baixá-lo e instalá-lo como um suplemento.
  2. 2. Baixe o Power Query se necessário:Se você tiver uma versão anterior do Excel, acesse o Microsoft Download Center e baixe o suplemento Power Query, selecionando a versão de 32 ou 64 bits que corresponde à sua instalação do Excel.
  3. 3. Instale o suplemento:Execute o instalador baixado e siga as instruções para instalar o Power Query.
  4. 4. Habilite o suplemento:Após a instalação, abra o Excel e vá para "Arquivo" > "Opções" > "Suplementos". Na lista de suplementos, marque a caixa ao lado de "Power Query" (ou "Power Query - Microsoft").

Exemplo Prático 1: Cotação de Criptomoedas

Vamos integrar dados da API CoinGecko para obter cotações de criptomoedas:

URL da API: https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum,litecoin&vs_currencies=usd,brl

Passo a Passo:

  1. Acessar Power Query
    • Dados → Obter Dados → De Outras Fontes → Da Web
  2. Inserir URL da API
    • Cole a URL da API CoinGecko
    • Clique em "OK"
  3. Transformar os Dados
    • O Power Query abrirá o editor
    • Clique em "Para Tabela" se necessário
    • Expanda as colunas aninhadas
  4. Estrutura dos Dados Resultantes
MoedaPreço USDPreço BRL
Bitcoin$43,250.00R$ 215,847.50
Ethereum$2,580.00R$ 12,879.60
Litecoin$72.50R$ 361.87

Exemplo Prático 2: Dados Meteorológicos

Outro exemplo importante para você fazer a integração de dados externos no Excel é integrando a API OpenWeatherMap para dados climáticos:

URL da API: http://api.openweathermap.org/data/2.5/weather?q=São Paulo,BR&appid=SUA_API_KEY&units=metric&lang=pt

Estrutura de Dados Meteorológicos:

CampoDescriçãoTipo
nameNome da cidadeTexto
main.tempTemperatura atualNúmero
main.humidityUmidadeNúmero
weather[0].descriptionDescrição do climaTexto
wind.speedVelocidade do ventoNúmero

Método 2: Usando VBA para APIs

Configuração do Ambiente VBA

Para usar VBA com APIs para fazer a Integração de Dados no Excel, precisamos habilitar algumas referências:

  1. Alt + F11 para abrir o Editor VBA
  2. FerramentasReferências
  3. Marcar: "Microsoft XML, v6.0" e "Microsoft Scripting Runtime"

Exemplo de Código VBA - API de CEP

Sub BuscarCEP()
    Dim http As Object
    Dim json As Object
    Dim cep As String
    Dim response As String
    
    ' CEP a ser consultado
    cep = Range("A1").Value
    
    ' Criar objeto HTTP
    Set http = CreateObject("MSXML2.XMLHTTP")
    
    ' Fazer requisição
    http.Open "GET", "https://viacep.com.br/ws/" & cep & "/json/", False
    http.send
    
    ' Obter resposta
    response = http.responseText
    
    ' Parse JSON (simplificado)
    If InStr(response, "erro") = 0 Then
        ' Extrair dados principais
        Range("B1").Value = ExtrairJSON(response, "logradouro")
        Range("C1").Value = ExtrairJSON(response, "bairro")
        Range("D1").Value = ExtrairJSON(response, "localidade")
        Range("E1").Value = ExtrairJSON(response, "uf")
    Else
        MsgBox "CEP não encontrado!"
    End If
End Sub

Function ExtrairJSON(jsonText As String, campo As String) As String
    Dim inicio As Integer
    Dim fim As Integer
    
    inicio = InStr(jsonText, """" & campo & """:""") + Len(campo) + 5
    fim = InStr(inicio, jsonText, """")
    
    ExtrairJSON = Mid(jsonText, inicio, fim - inicio)
End Function

Tabela de Resultados CEP

CEPLogradouroBairroCidadeUF
01310-100Avenida PaulistaBela VistaSão PauloSP
22070-900Avenida AtlânticaCopacabanaRio de JaneiroRJ
40070-110Largo do PelourinhoPelourinhoSalvadorBA

Método 3: Conectores Nativos do Excel

Você também pode fazer a integração de dados no Excel, através dos conectores nativos, como vamos mostrar neste exemplo:

Microsoft 365 - Conectores Disponíveis

ConectorDescriçãoDados Disponíveis
AçõesDados do mercado de açõesPreços, volumes, histórico
GeografiaInformações geográficasPopulação, área, PIB
OrganizaçõesDados de empresasReceita, funcionários, setor
PessoasInformações demográficasIdade, profissão, localização

Exemplo: Dados de Ações

  1. Inserir dados de ações:
    • Digite símbolos de ações (PETR4.SA, VALE3.SA)
    • Selecione as células
    • Dados → Tipos de Dados → Ações
  2. Campos disponíveis:
CampoDescrição
PreçoCotação atual
VariaçãoMudança percentual
VolumeVolume negociado
P/LPreço/Lucro
Market CapCapitalização de mercado

Automatização e Atualização

Configurar Atualização Automática

Power Query:

  1. Selecionar a tabela de dados
  2. Dados → Atualizar Tudo → Propriedades de Conexão
  3. Definir intervalo de atualização

VBA com Timer:

Sub AutoAtualizarAPIs()
    Application.OnTime Now + TimeValue("00:05:00"), "BuscarDadosAPI"
End Sub

Tabela de Frequências Recomendadas

Tipo de DadoFrequência SugeridaJustificativa
Cotações financeiras1-5 minutosAlta volatilidade
Dados meteorológicos30-60 minutosMudanças graduais
Estatísticas econômicasDiáriaBaixa frequência de mudança
Redes sociais15-30 minutosConteúdo dinâmico

Tratamento de Erros e Boas Práticas

Importar dados para o Excel com API Pública

Códigos de Status HTTP Comuns

CódigoStatusSignificadoAção Recomendada
200OKSucessoProcessar dados
400Bad RequestRequisição inválidaVerificar parâmetros
401UnauthorizedNão autorizadoVerificar API key
429Too Many RequestsLimite excedidoImplementar delay
500Internal Server ErrorErro do servidorTentar novamente

Exemplo de Tratamento de Erro em VBA

Sub BuscarDadosComTratamento()
    On Error GoTo ErrorHandler
    
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")
    
    http.Open "GET", "https://api.exemplo.com/dados", False
    http.send
    
    If http.Status = 200 Then
        ' Processar dados
        Range("A1").Value = http.responseText
    Else
        MsgBox "Erro HTTP: " & http.Status & " - " & http.statusText
    End If
    
    Exit Sub
    
ErrorHandler:
    MsgBox "Erro na conexão: " & Err.Description
End Sub

APIs Públicas Populares para Excel

Finanças e Economia

APIURL BaseDados DisponíveisChave Necessária
Alpha Vantagealphavantage.coAções, forex, cryptoSim (gratuita)
CoinGeckoapi.coingecko.comCriptomoedasNão
Fixer.iofixer.ioTaxas de câmbioSim
Yahoo Financequery1.finance.yahoo.comMúltiplos dados financeirosNão

Dados Gerais

APIURL BaseDados DisponíveisLimite
OpenWeatherMapopenweathermap.orgClima atual e previsão1000/dia gratuito
ViaCEPviacep.com.brEndereços por CEPIlimitado
JSONPlaceholderjsonplaceholder.typicode.comDados de testeIlimitado
Rest Countriesrestcountries.comInformações de paísesIlimitado

Exemplos Avançados

Dashboard Financeiro Integrado

Criando um dashboard que combina múltiplas APIs:

Estrutura da Planilha:

SeçãoDadosFonte
A1:E10Cotações cryptoCoinGecko
G1:K10Ações brasileirasAlpha Vantage
A15:E25CâmbioFixer.io
G15:K25CommoditiesQuandl

Monitoramento de Redes Sociais

Integrando APIs de redes sociais para monitoramento:

Sub MonitorarHashtag()
    Dim hashtag As String
    hashtag = "#ExcelTips"
    
    ' Simulação de chamada para API do Twitter
    ' (Requer autenticação OAuth)
    
    Range("A1").Value = "Hashtag: " & hashtag
    Range("A2").Value = "Menções: " & ObterMencoes(hashtag)
    Range("A3").Value = "Alcance: " & ObterAlcance(hashtag)
End Sub

Segurança e Autenticação

Tipos de Autenticação

MétodoDescriçãoImplementação
API KeyChave simples no cabeçalhoheaders["X-API-Key"] = "sua_chave"
Bearer TokenToken de acessoheaders["Authorization"] = "Bearer token"
OAuth 2.0Protocolo de autorizaçãoFluxo complexo, libraries necessárias
Basic AuthUsuário e senha codificadosheaders["Authorization"] = "Basic " + base64

Exemplo de Autenticação com API Key

Sub ConsultarAPIComChave()
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")
    
    http.Open "GET", "https://api.exemplo.com/dados", False
    http.setRequestHeader "X-API-Key", "SUA_CHAVE_AQUI"
    http.setRequestHeader "Content-Type", "application/json"
    http.send
    
    If http.Status = 200 Then
        Range("A1").Value = http.responseText
    End If
End Sub

Troubleshooting Common Issues

Problemas Frequentes e Soluções

ProblemaCausa ProvávelSolução
"Conexão falhou"URL incorreta ou API offlineVerificar URL e status da API
"Formato inválido"JSON malformadoValidar resposta da API
"Acesso negado"API key inválida ou expiradaRenovar credenciais
"Dados não carregam"Firewall ou proxyConfigurar exceções de rede
"Erro de parsing"Estrutura de dados mudouAtualizar queries

Debugging em Power Query

  1. Habilitar diagnósticos:
    • Arquivo → Opções → Dados → Diagnósticos do Power Query
  2. Visualizar etapas:
    • No editor Power Query, observar "Etapas Aplicadas"
    • Clicar em cada etapa para ver transformações
  3. Tratar valores nulos: = Table.ReplaceValue(#"Etapa Anterior", null, 0, Replacer.ReplaceValue, {"Coluna1"})

Performance e Otimização

Boas Práticas para Performance

PráticaBenefícioImplementação
Cache localReduz chamadas à APISalvar dados em planilha auxiliar
Filtros na APIMenos dados transferidosUsar parâmetros de query
Processamento em loteEficiência de redeAgregar múltiplas consultas
Atualização seletivaEconomiza recursosAtualizar apenas dados alterados

Exemplo de Cache Implementado

Sub BuscarComCache()
    Dim ultimaAtualizacao As Date
    Dim agora As Date
    
    agora = Now()
    ultimaAtualizacao = Range("Z1").Value
    
    ' Atualizar apenas se passou mais de 5 minutos
    If DateDiff("n", ultimaAtualizacao, agora) > 5 Then
        BuscarDadosAPI
        Range("Z1").Value = agora
    Else
        MsgBox "Dados ainda atuais, aguarde " & (5 - DateDiff("n", ultimaAtualizacao, agora)) & " minutos"
    End If
End Sub

Conclusão

A integração de dados de APIs públicas com o Excel representa uma evolução natural na forma como trabalhamos com informações em planilhas. Através dos métodos apresentados neste tutorial - Power Query, VBA e conectores nativos - é possível automatizar a coleta de dados externos, mantendo informações sempre atualizadas e relevantes.

O Power Query oferece uma solução visual e intuitiva para a maioria dos casos de uso, sendo ideal para usuários que preferem interfaces gráficas. O VBA proporciona maior flexibilidade e controle, permitindo implementar lógicas complexas e tratamento avançado de erros. Os conectores nativos do Microsoft 365 simplificam ainda mais o processo para tipos específicos de dados.

A escolha do método adequado depende da complexidade dos dados, frequência de atualização necessária e nível de personalização desejado. Independentemente da abordagem escolhida, é fundamental considerar aspectos como segurança, performance e tratamento de erros para criar soluções robustas e confiáveis.

Com o domínio dessas técnicas, profissionais podem transformar o Excel em uma poderosa ferramenta de business intelligence, capaz de integrar dados de múltiplas fontes e fornecer insights valiosos para tomada de decisões. A automatização resultante não apenas economiza tempo, mas também reduz erros humanos e garante a consistência dos dados utilizados em análises e relatórios.

O futuro da análise de dados no Excel está na integração inteligente com APIs, e este tutorial fornece a base sólida necessária para explorar essas possibilidades e expandir continuamente as capacidades de suas planilhas.

Edivaldo

Edivaldo. Analista de funções e fórmulas de Excel, adoro fazer planilhas e compartilhar meus conhecimentos com as pessoas. Seja bem-vindo ao tudo Excel, onde você aprende de graça e tira suas dúvidas.

Deixe um comentário

Botão Voltar ao topo