Consultar API Web no Excel com Power Query – API de Clima

Como Consultar Clima API PowerQuery Excel

Neste artigo você aprenderá como consultar API Web no Excel com Power Query usando uma API no Excel.

Site de Consulta de Clima Power Query

Para realizar consultas de clima na web utilizamos a API gratuita do site METEO.

Para realizar um teste utilize este link no navegador:

https://api.open-meteo.com/v1/forecast?latitude=-26.3&longitude=-48.8&current_weather=true&timezone=America/Sao_Paulo

Como resultado você terá o retorno de uma consulta JSON com dados de tempo, temperatura, vento, direção do vento.

Para retornar estas informações precisamos enviar latitude e longitude como parâmetros no navegador.

Por isso criamos uma tabela de cidades e usaremos o tipo de dados do Excel para retornar a Longitude e Latitude.

Tabela Base de Cidades

Para iniciar o trabalho você deve usar uma tabela de cidades com o nome das cidades.

Após isso clicando na guia Dados clique em Geografia e selecione os tipos de dados de Latitude e Longitude para adicionar estas informações.

Esta tabela será utilizada para que realizemos a consulta de dados de clima de cada uma das cidades.

Para realizar a consulta dos dados no Power Query clique na guia Dados e no botão da Web.

Na tela coloque este link: https://api.open-meteo.com/v1/forecast?latitude=-26.3&longitude=-48.8&current_weather=true&timezone=America/Sao_Paulo

E então adicione como parâmetros de cabeçalho nas linhas abaixo:

Accept: application/json

Accept-Enconding: identity

Após isso as informações são extraídas como temos na imagem abaixo, clicando no botão Record

Criar uma Função de Consulta de Clima Web no Excel

Para realizarmos a consulta de clima usando uma função no Power Query criamos a função fnClima.

Esta função recebe os parâmetros latitude e longitude e com isso podemos realizar a consulta de dados da web e o retorno das informações do clima.

A função utilizada foi a seguinte.

let fnClima = (latitude as text, longitude as text)=>
let
    lat = Text.Replace(latitude, ",", "."),
    lon = Text.Replace(longitude, ",", "."),

    Fonte = Json.Document(Web.Contents("https://api.open-meteo.com/v1/forecast?latitude=" & lat & "&longitude=" & lon & "&current_weather=true&timezone=America/Sao_Paulo", [Headers=[Accept="application/json", #"Accept-Encoding"="identity"]])),

    #"Convertido para Tabela" = Record.ToTable(Fonte),
    #"Tabela Transposta" = Table.Transpose(#"Convertido para Tabela"),
    #"Cabeçalhos Promovidos" = Table.PromoteHeaders(#"Tabela Transposta", [PromoteAllScalars=true]),
    #"Tipo Alterado" = Table.TransformColumnTypes(#"Cabeçalhos Promovidos",{{"latitude", type number}, {"longitude", type number}, {"generationtime_ms", type number}, {"utc_offset_seconds", Int64.Type}, {"timezone", type text}, {"timezone_abbreviation", type text}, {"elevation", Int64.Type}, {"current_weather_units", type any}, {"current_weather", type any}}),
    #"Outras Colunas Removidas" = Table.SelectColumns(#"Tipo Alterado",{"latitude", "longitude", "current_weather"}),
    #"current_weather Expandido" = Table.ExpandRecordColumn(#"Outras Colunas Removidas", "current_weather", {"time", "interval", "temperature", "windspeed", "winddirection", "is_day", "weathercode"}, {"time", "interval", "temperature", "windspeed", "winddirection", "is_day", "weathercode"}),
    Arredondado = Table.TransformColumns(#"current_weather Expandido",{{"latitude", each Number.Round(_, 1), type number}, {"longitude", each Number.Round(_, 1), type number}})
in
    Arredondado
in fnClima

Tabelas de Configurações

Além disso temos as tabelas de configurações como de código de clima e a descrição e imagem.

Na tabela WeatherCode temos o código de clima que será retornado conforme temos no retorno do power query

A tabela winddirection tem a direção do vento que retorna com uma imagem de bússola usando procv para a consulta das informações da aAPI

A velocidade do tempo é retornada conforme a tabela que temos abaixo.

Veja a tabela abaixo com os dados retornados da API.

Ao clica rpara expandir a tabela nós temos as informações abaixo.

Utilizando o retorno do power query e as tabelas de configurações temos o retorno de informações e das imagens usando o power query.

Download Planilha Consulta API de Clima Excel

Realize o download do da planilha de exemplo e da vídeo-aula acima neste botão abaixo. Basta se inscrever na nossa newsletter gratuita para o download automático.

Baixe a planilha
Avalie este post

Conheça nosso

Curso de Excel completo